Arrays 快速返回随机字符串

Arrays 快速返回随机字符串,arrays,swift,string,int,swiftui,Arrays,Swift,String,Int,Swiftui,为什么这只适用于数字? 我可以显示一个随机数,但不能显示一个随机字符串。 如何格式化 struct ContentView: View { let results = [8, 5, 10].map(Result.init) let orden = ["hej", "ta", "tojj"].map(Ord.init) @State var randomResult: Result? @State var randomOrd: Ord? var bod

为什么这只适用于数字? 我可以显示一个随机数,但不能显示一个随机字符串。 如何格式化

struct ContentView: View {

    let results = [8, 5, 10].map(Result.init)
    let orden = ["hej", "ta", "tojj"].map(Ord.init)

    @State var randomResult: Result?
    @State var randomOrd: Ord?

    var body: some View {
        VStack {
            Button(action: {


               self.randomResult = self.results.randomElement()
                self.randomOrd = self.orden.randomElement()
            }) {
                Text("Button title, \(randomResult?.score ?? 0)")

               Text(randomOrd?.ord ?? 0)
               // THIS DOESN'T WORK even when i put an Int around it 


            }

        }
    }
}

默认值
0
绝对不是字符串。等效字符串是空字符串

Text(randomOrd?.ord ?? "")
采用
StringProtocol
类型的
content

init(\ucontent:S),其中S:StringProtocol

注意,在

Text("Button title, \(randomResult?.score ?? 0)")
您正在传递一个有效的字符串(带插值int)。然而,在

Text(randomOrd?.ord ?? 0)
似乎您正试图直接传递一个int,这是无效的

根据作战需求文件的类型:

如果是字符串,则应将其实现为:

Text(randomOrd?.ord ?? "0") // OR maybe Text(randomOrd?.ord ?? "")
如果它是一个整数:

Text("\(randomOrd?.ord ?? 0)")