fun <T> asList(vararg ts: T): List<T> {val result =ArrayList<T>()for (t in ts) // ts is an Array result.add(t)return result}asList(1, 2, 3)// 或者使用伸展操作符,将数组展开val a =arrayOf(1, 2, 3)val list =asList(-1, 0, *a, 4)
函数的返回值
无返回值函数
// 无返回值函数可以使用 Unit 类型来表示,也可以省略返回值类型。funprintHello() {println("Hello")}funprintWorld(): Unit {println("World")}
单返回值函数
// 单个返回值函数可以使用任意类型来表示,如果没有显式指定返回值类型,则会根据函数体自动推断出返回值类型。funadd(a: Int, b: Int): Int {return a + b}funsub(a: Int, b: Int) = a - b
fundfs(graph: Graph) {val visited =HashSet<Vertex>()fundfs(current: Vertex) {if (!visited.add(current)) returnfor (v in current.neighbors)dfs(v) }dfs(graph.vertices[0])}
匿名函数
val sum =fun(x: Int, y: Int): Int {return x + y}val s =sum(1, 2)println(s)// list的map方法,就可以传入一个匿名函数val list =listOf(1, 2, 3, 4, 5)val newList = list.map(fun(i): Int { return i *2 })