Swift 如何返回随机多整数

Swift 如何返回随机多整数,swift,Swift,我在swift有一个测验项目。一切都很好,但我想通过使用一个函数来提高效率,而不是单独使用每个项目 谢谢你的帮助 在操场上,我试着使用: func random( a:Int, b:Int, c:Int) -> (Int, Int, Int) return Int(arc4random_uniform(UInt32(a, b, c))) 我的错误是: 无法使用类型为“(Int,Int,Int)”的参数列表调用类型为“UInt32”的初始值设定项 您有一个具有此签名的函数:(Int

我在swift有一个测验项目。一切都很好,但我想通过使用一个函数来提高效率,而不是单独使用每个项目

谢谢你的帮助

在操场上,我试着使用:

func random( a:Int, b:Int, c:Int) -> (Int, Int, Int)
    return Int(arc4random_uniform(UInt32(a, b, c)))
我的错误是:

无法使用类型为“(Int,Int,Int)”的参数列表调用类型为“UInt32”的初始值设定项


您有一个具有此签名的函数:
(Int,Int,Int)->Int

函数
arc4random\u uniform
必须应用于UInt32,而不是Int。
如果你把a,b,c都转换过来就好了

你有几个问题

  • 您需要分别生成三个数字,然后返回三个结果的元组。您只调用了一次
    arc4random\u uniform()
  • arc4random_uniform()
    获取一个
    UInt32
    并尝试将三个
    Int
    s传递给
    UInt32
    初始值设定项(它是一个不存在的初始值设定项)的结果
  • 我建议使用
    Int.random(in:)
    而不是
    arc4random\u uniform()


    替代实施

    通过获取可变数量的最大输入并返回数组,您可以灵活处理所需的任意数量的随机数:

    func random(maxVals: Int...) -> [Int] {
        return maxVals.map { .random(in: 0..<$0) }
    }
    

    你想干什么?生成三个不同的随机值并返回它们?func random(n:Int)->Int{return Int(arc4random_uniform(UInt32(n))}print(random(9))的
    a
    b
    c
    是什么?func random(n:Int)->Int{return Int(arc4random_uniform(UInt32(n))}print(random(9)),而我想使用3个变量
    arc4random_uniform。请考虑接受这个答案。
    
    for _ in 1...20 {
        print(random(a: 2, b: 6, c: 100))
    }
    
    (0, 3, 5)
    (0, 1, 32)
    (0, 1, 90)
    (0, 3, 17)
    (1, 0, 34)
    (0, 1, 78)
    (1, 0, 71)
    (0, 1, 85)
    (1, 0, 27)
    (1, 0, 26)
    (0, 0, 93)
    (0, 1, 46)
    (1, 4, 47)
    (1, 1, 12)
    (0, 2, 21)
    (1, 3, 72)
    (0, 2, 62)
    (0, 5, 50)
    (1, 2, 23)
    (1, 4, 21)
    
    func random(maxVals: Int...) -> [Int] {
        return maxVals.map { .random(in: 0..<$0) }
    }
    
    print(random(maxVals: 2, 6, 100))
    
    [1, 4, 57]
    
    print(random(maxVals: 2, 6))
    
    [0, 5]