结果:他的头像是头像为空
func face(_ person: String, moren:String = "头像为空") -> String{
if moren == "头像为空"{
return("他的头像是\(moren)")
} else {
return("他的头像是\(person)")
}
}
let facebook = face("mack", moren: "头像为空")
print(facebook)
//返回值
func square(number: Int) -> String {
return("返回值是\(number * number)")
}
let result = square(number: 10)
print(result)
//内部及外部参数
func square(to number: Int) -> String {
return("返回值是\(number * number)")
}
let result = square(to: 10)
print(result)
//省略外部参数
func square(_ number: Int) -> String {
return("返回值是\(number * number)")
}
let result = square(10)
print(result)
可变参数
func square(numbers: Int...) {
for number in numbers{
print("\(number)的平方是\(number * number)!")
}
}
square(numbers: 1, 2, 3)
1的平方是1!
2的平方是4!
3的平方是9!
//switch条件语句
var index = "🍒"
switch index {
case "晴天" :
print( "index 的值为 晴天")
case "🍒" :
print( "index 的值为 🍒")
case "1" :
print( "index 的值为 1")
default :
print( "默认 case")
}
//枚举学生类型,定义两个case
enum Student{
case Name(String)
case Mark(Int, Int, Int)
}
//给两个case传值,存储到studDetails,studMarks这两个变量里
var studDetails = Student.Name("benben")
var studMarks = Student.Mark(89, 90, 99)
//print(studMarks) //Mark(89, 90, 99)
//通过switch条件查询学生的成绩/名字,case必须有变量,studMarks.Name属性,let给case的类型传参数
switch studDetails {
case .Name:
print("学生的名字是?")
case .Mark(let Mark1, let Mark2, let Mark3):
print("学生的语数外成绩是\(Mark1),\(Mark2),\(Mark3).")
}
enum PasswordError {
case obvious1(String)
}
var cuowu = PasswordError.obvious1("密码错误")
switch cuowu {
case .obvious1(let tag):
print("错误类型是\(tag)")
default:
print("没有错误")
}
enum PasswordError: Error {
case obvious
}
//从函数中抛出错误。实现的方法是在返回值前写一个 throws ,然后在函数出错时使用 throw 关键字抛出错误。
func checkPassword(_ password: String) throws -> Bool {
if password == "password" {
throw PasswordError.obvious
}
return true
}
//如果 do 语句块里有任何错误抛出,代码执行会直接跳到 catch 语句块
do {
try checkPassword("password")
print("这个密码很棒!")
} catch {
print("你不能用这个密码。")
}
//输出:你不能用这个密码。
var myNum = 10
doubleInPlace(number: &myNum)
//所有传入Swift函数的参数默认都是 常量,所以你无法更改它们。假如你就是想要在函数内改变这些参数呢?可以用 inout 修饰它们
func doubleInPlace(number: inout Int){
number *= 5
}
网友评论