Function 快速随机函数
我正在制作一个为玩家生成随机障碍物的游戏,所以我想要一个函数,返回一个生成障碍物的随机函数Function 快速随机函数,function,swift,return-type,arc4random,Function,Swift,Return Type,Arc4random,我正在制作一个为玩家生成随机障碍物的游戏,所以我想要一个函数,返回一个生成障碍物的随机函数 func createObstacle() { var obstacles = [obstacle1(), obstacle2(), obstacle3()] var randomObstacle = Int(arc4random_uniform(UInt32(obstacles.count))) var obstacle = obstacles[r
func createObstacle() {
var obstacles = [obstacle1(), obstacle2(), obstacle3()]
var randomObstacle = Int(arc4random_uniform(UInt32(obstacles.count)))
var obstacle = obstacles[randomObstacle]
}
问题是我真的不知道如何使我的函数返回另一个函数。假设我正确理解了您的问题,您希望:
func createObstacle() -> () -> () {
var obstacles = [obstacle1, obstacle2, obstacle3]
var randomObstacle = Int(arc4random_uniform(UInt32(obstacles.count)))
return obstacles[randomObstacle]
}
查看有关函数的文档部分:假设我正确理解了您的问题,您希望:
func createObstacle() -> () -> () {
var obstacles = [obstacle1, obstacle2, obstacle3]
var randomObstacle = Int(arc4random_uniform(UInt32(obstacles.count)))
return obstacles[randomObstacle]
}
查看有关函数的文档部分:创建数组时,不要执行函数,只需使用它们的名称即可:
func obstacle1() -> Int {
return 1
}
func obstacle2() -> Int {
return 2
}
func obstacle3() -> Int {
return 3
}
func getObstacle() -> () -> Int {
var obstacles = [obstacle1, obstacle2, obstacle3]
var randomObstacle = Int(arc4random_uniform(UInt32(obstacles.count)))
return obstacles[randomObstacle]
}
本例中函数的返回类型是->Int-我使用Int表示可以从函数中获得返回值。->将是一个没有返回值的函数
您也可以为障碍物函数的类型创建类型别名,并返回:
typealias ObstacleFunction = () -> Int
func getObstacle() -> ObstacleFunction {
// ..
}
创建数组时,不要执行函数,只需使用它们的名称:
func obstacle1() -> Int {
return 1
}
func obstacle2() -> Int {
return 2
}
func obstacle3() -> Int {
return 3
}
func getObstacle() -> () -> Int {
var obstacles = [obstacle1, obstacle2, obstacle3]
var randomObstacle = Int(arc4random_uniform(UInt32(obstacles.count)))
return obstacles[randomObstacle]
}
本例中函数的返回类型是->Int-我使用Int表示可以从函数中获得返回值。->将是一个没有返回值的函数
您也可以为障碍物函数的类型创建类型别名,并返回:
typealias ObstacleFunction = () -> Int
func getObstacle() -> ObstacleFunction {
// ..
}
您可以将此代码用于随机障碍物
func createObstacle() -> () -> () {
var obstacles = [obstacle1, obstacle2, obstacle3]
var randomObstacle = obstacle\(arc4random_uniform(3) + 1)
return obstacles[randomObstacle]
}
希望这将对您有所帮助。您可以将此代码用于随机障碍物
func createObstacle() -> () -> () {
var obstacles = [obstacle1, obstacle2, obstacle3]
var randomObstacle = obstacle\(arc4random_uniform(3) + 1)
return obstacles[randomObstacle]
}
希望这能对您有所帮助。应该是这样的:返回障碍[RandomBarriend]谢谢您,它将运行函数并返回结果。在调用CreateShibird的过程中,您应该运行函数,如下所示:return barriends[randomshibird]谢谢,它将运行函数并返回结果。在调用CreateShibble的过程中,您应该运行您的函数