【问题标题】:Selecting a tuple index using a variable in Swift在 Swift 中使用变量选择元组索引
【发布时间】:2014-09-05 01:04:39
【问题描述】:

这就是我想要做的:

var i = 0
var string = "abcdef"

for value in string
{
    value.[Put value of variable i here] = "a"

    i++
}

如何在代码中插入 i 的值?

【问题讨论】:

  • for 循环中的 var "value" 是一个字符,而不是一个元组。 swift中的字符串是字符的集合。来自苹果的链接:developer.apple.com/library/prerelease/ios/documentation/Swift/…
  • 我知道,但我可以使用 value.0 或 value.1 访问该值
  • A) 这可能是一个不值得依赖的实现细节,B) 分配的目的是什么?
  • 我有一个字符串,用户名和密码用空格分隔,我需要获取空格前的每个字母并将其附加到用户名所以我需要执行类似 username.i = value
  • 为什么你的用户名和密码在一个字符串中?这里出了点问题。

标签: string swift tuples


【解决方案1】:

最简单的可能就是将其转换为 NSMutableString:

let string = "abcdef".mutableCopy() as NSMutableString

println( "\(string)")

for var i = 0; i < string.length; ++i {
  string.replaceCharactersInRange(NSMakeRange(i, 1), withString: "a")
}

println( "\(string)")

是的,它有点难看,但它有效。

【讨论】:

    【解决方案2】:

    更简洁的方法是使用 Swifts map 函数:

    var string = "abcdef"
    let result = map(string) { (c) -> Character in
        "a"
    }
    println("\(result)") // aaaaaa
    

    您应该只能使用以下内容,但这不会编译:

    map(string) { "a" }
    

    在你提到你想在空格上分割字符串时,你可以使用它:

    let stringWithSpace = "abcdef 012345"
    let splitString = stringWithSpace.componentsSeparatedByString(" ")
    println("\(splitString[0])") // abcdef
    println("\(splitString[1])") // 012345
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-11-30
      • 2011-03-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多