2つの文字列str1とstr2があるとします。私は新しい変数str3をstr1と同じにしたい、あるいはstr1が空でstr2と等しい場合JSでGoには、このJS式に相当するものがありますか?
私が書くでしょう:
var str3 = str1 || str2
行くに私が好きなことをしなければならない一方で:
str3 := str1
if str1 == "" {
str3 = str2
}
芋少しあまりにも冗長です。 JSと同じ表現はありますか?
2つの文字列str1とstr2があるとします。私は新しい変数str3をstr1と同じにしたい、あるいはstr1が空でstr2と等しい場合JSでGoには、このJS式に相当するものがありますか?
私が書くでしょう:
var str3 = str1 || str2
行くに私が好きなことをしなければならない一方で:
str3 := str1
if str1 == "" {
str3 = str2
}
芋少しあまりにも冗長です。 JSと同じ表現はありますか?
JSと同じ表現はありますか?
ありませんが、あなた自身が、多くの場合、これをやって見つけた場合、あなたはあなたが達成しようとしているものない関数を書くことができます:
func strs(s ...string) string {
if len(s) == 0 {
return ""
}
for _, str := range s[:len(s)-1] {
if str != "" {
return str
}
}
return s[len(s)-1]
}
使用法:
str3 := strs(str1, str2)
Goには同等の操作はありません。あなたはif(またはスイッチ、しかしそれはもっと冗長です)でそれをしなければなりません。
var str3 string
if str1 != "" {
str3 = str1
} else {
str3 = str2
}
Goのスニペットは、JSのスニペットとかなり同じではないことに注意してください。「str1」を「false」に設定してJSコードを試してください。私が実際に言いたいのは、私がJSを書くことを余儀なくされたとき、私はGoでそれをやっているのと同じようにしています。だから私はあなたのスニペットを 'var str3 = str1 ==="のようなもので書くだろうか? str2:str1' – kostix
しかし、Goの場合は省略形はありませんか? – Ivan
幸運にも、そうではありません。 – kostix