func say(name:String, msg:String) {
println("\(name) say \(msg)")
}
say("Henry","Hi,Swift") <---- error because missing argument label 'msg' in call
Run Code Online (Sandbox Code Playgroud)
我需要用
say("Henry",msg:"Hi,Swift")
Run Code Online (Sandbox Code Playgroud)
为什么?如果我在func中放入两个以上的var,这样当我调用这个函数时我需要编写var name而不是first var
它真的很麻烦,我在iBook Swift教程中没有看到任何解释.
所以我想说我有一个名为Math的课程
class Math{
func add(numberOne: Int, numberTwo: Int) -> Int{
var answer: Int = numberOne + numberTwo
return answer
}
Run Code Online (Sandbox Code Playgroud)
在这个类中有一个允许用户添加两个数字的功能.
我现在有另一个类,它是UIViewController的子类,我想使用Math类的add函数,我该怎么做?
class myViewController: UIViewController{
//Math.add()???
}
Run Code Online (Sandbox Code Playgroud) 我正在尝试学习如何使用Swift中的泛型工具做一些简单的事情.我煮了一个问题,我正面对一个简单的谜题.想象一下,我想写一个值类型Pair<A,B>,它有一个flip方法,它返回该对的副本,但两个值(及其类型)相反.
struct Pair<A, B> {
let a: A
let b: B
init(first: A, second:B) {
a = first;
b = second;
}
func flip() -> Pair<B,A> {
return Pair(self.b,self.a)
}
}
Run Code Online (Sandbox Code Playgroud)
当我写这个时,我在线路上遇到错误,我正在尝试返回新的翻转对. Cannot convert the expression's type 'Pair<A,B>' to type (first: A, second: B)'
我正在努力做甚么可能吗?
考虑下面给出的代码
class division {
var count: Int = 0
func incrementBy(no1: Int, no2: Int) {
count = no1 / no2
println(count)
}
}
let counter = division()
counter.incrementBy(no1:1800, no2: 3)
Run Code Online (Sandbox Code Playgroud)
它给出以下错误:
error: extraneous argument label 'no1:' in call
counter.incrementBy(no1:1800, no2: 3)
^~~~~
Run Code Online (Sandbox Code Playgroud)
当我删除标签时no1,编译器不会抱怨标签no2.
当我删除这两个水平no1和no2,它提供了以下错误:
error: missing argument label 'no2:' in call
counter.incrementBy(1800, 3)
^
no2:
Run Code Online (Sandbox Code Playgroud)
任何人都可以解释这种行为.提前致谢.