両方が等しい文字列ですか?文字列とオプションとの比較オプション文字列
私はそれらを印刷しようとした、次の応答である:
それらを比較しようとしたとき、それは私false
であることが判明しかし、理解することはできません彼らは両方の文字がアラビア語で同じですが、それでも、彼らはそうではないと言います!ここで
は何が起こっているかのより多くの文脈の画像です:CRDのコメントを1として
両方が等しい文字列ですか?文字列とオプションとの比較オプション文字列
私はそれらを印刷しようとした、次の応答である:
それらを比較しようとしたとき、それは私false
であることが判明しかし、理解することはできません彼らは両方の文字がアラビア語で同じですが、それでも、彼らはそうではないと言います!ここで
は何が起こっているかのより多くの文脈の画像です:CRDのコメントを1として
それは異なります。これは
これはオプションi
let b : String? = "i" // "i"
i
let a = "i" // "i"
非オプション10
a
とb
は
a == b // true
等しいしかし、これは文字列補間
今a
とc
で作成された任意i
はない等しい
Optional
を追加するため
a == c // false
このcomparationはfalse
です。
うわー!天才。知識をありがとう。私が質問した質問には答えましたが、あなたの答えはより正確で知識があります。 –
、Optional
は誤解を招くでした。一見、タイプ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
は、配列の配列だけです。
同じであるように見えます。それからもう一度、それは午前5時であり、私は睡眠が必要です – Alexander
"オプション"はあなたの文字列の文字のように見えますが、あなたはそれがそのタイプの一部だと思っているようです? – CRD
@CRD、私は 'firstLetter'がどのように初期化されているかを示す質問を更新しました。あなたが話していると思って、私たちはそれを理解することができます。 –