If statement 将可选字符串与非可选字符串进行比较
它们都是相等的字符串吗? 我尝试打印它们,以下是响应: 当尝试比较它们时,结果是If statement 将可选字符串与非可选字符串进行比较,if-statement,swift3,If Statement,Swift3,它们都是相等的字符串吗? 我尝试打印它们,以下是响应: 当尝试比较它们时,结果是false 我听不懂,虽然这两个字母在阿拉伯语中是一样的,但它仍然说,它们不是 下面是一幅更具背景意义的画面: 根据CRD的评论,可选的是误导性的。事实证明,表面上的类型Optional实际上是一个字符串。下面是我如何更改代码以比较第一个字母: for song in allSongs{ let firstLetter = song.name?.characters.first var index
false
我听不懂,虽然这两个字母在阿拉伯语中是一样的,但它仍然说,它们不是
下面是一幅更具背景意义的画面:
根据CRD的评论,可选的
是误导性的。事实证明,表面上的类型Optional
实际上是一个字符串。下面是我如何更改代码以比较第一个字母:
for song in allSongs{
let firstLetter = song.name?.characters.first
var index = 0
for letter in sectionTitles{
if(letter.characters.first == firstLetter){
break;
}
index += 1
}
var array = sectionedSongs[index]
array.append(song)
}
注sectionedSongs
只是一个数组。根据CRD的评论,可选的有误导性。事实证明,表面上的类型Optional
实际上是一个字符串。下面是我如何更改代码以比较第一个字母:
for song in allSongs{
let firstLetter = song.name?.characters.first
var index = 0
for letter in sectionTitles{
if(letter.characters.first == firstLetter){
break;
}
index += 1
}
var array = sectionedSongs[index]
array.append(song)
}
注意sectionedSongs
只是一个数组。这取决于:
这是一个非可选的i
let a = "i" // "i"
let b : String? = "i" // "i"
这是可选的i
let a = "i" // "i"
let b : String? = "i" // "i"
a
和b
相等
a == b // true
但是,这是一个可选的i
,使用字符串插值创建
let c = "\(b)" // "Optional("i")"
现在a
和c
不相等
a == c // false
此比较为false
,因为字符串插值将文本可选
添加到字符串中。这取决于:
这是一个非可选的i
let a = "i" // "i"
let b : String? = "i" // "i"
这是可选的i
let a = "i" // "i"
let b : String? = "i" // "i"
a
和b
相等
a == b // true
但是,这是一个可选的i
,使用字符串插值创建
let c = "\(b)" // "Optional("i")"
现在a
和c
不相等
a == c // false
此比较为false
,因为字符串插值将文本可选
添加到字符串中。似乎它们应该相等。再说一次,现在是凌晨5点,我需要睡眠。字符串中的“可选”字符似乎是字符,但您似乎认为它是类型的一部分?@CRD,我更新了问题,以显示“第一个字母”是如何初始化的。它认为,你说的很有道理,我们可以弄明白。@ChanchalRaj检查一下这个@CRD,你是对的,伙计!看起来他们应该是平等的。再说一次,现在是凌晨5点,我需要睡眠。字符串中的“可选”字符似乎是字符,但您似乎认为它是类型的一部分?@CRD,我更新了问题,以显示“第一个字母”是如何初始化的。它认为,你说的很有道理,我们可以弄明白。@ChanchalRaj检查一下这个@CRD,你是对的,伙计!哇!天才。谢谢你的知识。虽然我已经回答了我问的问题,但你的回答更准确,更博学。哇!天才。谢谢你的知识。虽然我已经回答了我所问的问题,但你的回答更准确、更博学。