swift 基础-4
函数:完成特定任务的代码块,通过名字来表示函数做什么
func 函数名(形参:形参类型)->返回类型
command +option+0 隐藏右边的框
//定义函数
func sayHello(name:String)->String{
let greeting = "hello " + name + "!"
return greeting
}
println(sayHello("Anno"))
// 多个参数
func minusResult(start:Int,end:Int)->Int{
return end - start
}
println(minusResult(1,10))
//无参数
func sayHelloWorld() ->String{
return "Helo World"
}
println(sayHelloWorld())
// 无返回值 Void = 空元组(tuple)
func sayGoodbye(name:String){
println("Goodby,\(name)")
}
println(sayGoodbye("Dave"))
// 多重返回值函数
func count(str:String) ->(vs:Int,cs:Int,os:Int){
var vowels = 0,consonants = 0,others = 0
for Character in str{
switch String(Character).lowercaseString{
case "a","e","i","o","u":
++vowels
case "b","c","d","f","g","h","j","k","l","m","n","p","q","t","s","t","v","w","x","y","z":
++consonants
default:
++others
}
}
return (vowels,consonants,others)
}
let total = count("some arbitrary string!")
println("\(total.vs) vowels and \(total.cs) consonants")
// 外部参数名 把两个字符串连在一起
func join(s1:String, s2:String,joiner:String) ->String{
return s1 + joiner + s2
}
println(join("hello","world",","))
// 不使用外部参数的时候,这三个参数不清楚到底是干什么的
func joins(outSting s1:String,toSting s2:String, withJoiner joiner:String) ->String{
return s1 + joiner + s2
}
println(joins(outSting:"hello",toSting:"world",withJoiner:","))
// 带来问题:调用函数的时候 写太多,解决办法 看下边
// 简写 外部参数名 参数名前 加#
// func joins1(outSting s1:String,toSting s2:String, withJoiner joiner:String) ->String{
// return s1 + joiner + s2
// }
// println(joins1(outSting:"hello",toSting:"world",withJoiner:","))
func containsCharacter(#string:String,#characterToFind:Character) ->Bool{
for character in string{
if character == characterToFind{
return true
}
}
return false
}
let containsAVee = containsCharacter(string: "qwertyuiop", characterToFind: "y")
println(containsAVee)
// 给默认参数
func joinss(outSting s1:String,toSting s2:String, withJoiner joiner:String = ",") ->String{
return s1 + joiner + s2
}
// 第三个参数 没写 直接使用默认值
let str1 = joinss(outSting: "nihao", toSting: "heri")
println(str1)
// 注意会出错
func joinbb(outSting s1:String,toSting s2:String, withJoiner joiner:String = "") ->String{
return s1 + joiner + s2
}
// 第三个参数 没写 直接使用默认值
let str2 = joinbb( outSting: "haha", toSting: "zheli", withJoiner: "+")
println(str2)
// 可变参数 传入不确定数量来输入参数 变量名类型 ... = 数组常量
swift 基础-4的更多相关文章
- swift基础:第六部分:类与对象
http://reactnative.cn/docs/0.24/getting-started.html#content(react Native 开发文档) 互联网这个时代,你松懈一天,就会有很多很 ...
- swift基础:第二部分:函数和闭包
今天本来想利用上午的时间本来打算将swift基础部分学习完的,不巧的是,后台来和我讨论用户评价的接口,讨论过后,商讨出一种可行的方案,十几分钟时间过去了,我拿到将接口介入到已经完成的页面中,完美,终于 ...
- Swift基础语法学习总结(转)
Swift基础语法学习总结 1.基础 1.1) swift还是使用// 和/* */ 来注释,并且/* */允许多行注释. 1.2) swift使用print和println打印,它的传参是一个泛型 ...
- Swift基础语法学习总结
Swift基础语法学习总结Swift高级语法学习总结Swift语法总结补充(一) 1.基础 1.1) swift还是使用// 和/* */ 来注释,并且/* */允许多行注释. 1.2) swift ...
- swift -- 基础
swift -- 基础 1.常量和变量 常量: let 变量: var 2.声明常量和变量 常量的声明: let let a = 1 //末尾可以不加分号,等号两边的空格必须对应(同 ...
- iOS Swift 模块练习/swift基础学习
SWIFT项目练习 SWIFT项目练习2 iOS Swift基础知识代码 推荐:Swift学习使用知识代码软件 0.swift中的宏定义(使用方法代替宏) 一.视图 +控件 1.UIImag ...
- Swift基础学习
Swift基础学习 http://c.biancheng.net/cpp/html/2242.html 这个网站最近看了一下,对于基本语法解释概括的相对全面,如同重新练习一遍OC似的,挺全面的,谢谢 ...
- swift基础语法(四) 函数、闭包(Closures)
//函数基本定义 func 函数名(参数名:参数类型=默认值) ->返回值类型{代码块} //无参无返回值函数 func hsmin(){ } //单参无返回值函数 func prin(st:S ...
- Swift基础语法(二)
操作符 swift中运算符基本基础于c,下面我就给大家白话白话那些被优化过的运算符们 //加号减号的妙用 var a= var b= -a//此时b=-1 var c = +b//此时 c=-1 va ...
- Swift基础之闭包
内容纲要: 1.闭包基础 2.关于闭包循环引用 正文: 1.闭包 闭包是自包含的函数代码块,可以在代码中被传递和使用.Swift 中的闭包与 C 和 Objective-C 中的代码块(blocks) ...
随机推荐
- 学习Tomcat动态加载JSP的Class类
今天在修改项目一个JSP文件时,突然想到Tomat是怎么实现动态实时加载JSP编译后的class类的? 查了半天资料,看了很多文章,终于明白是怎么回事了:ClassLoader,当tomcat发现js ...
- Java的Socket通信(多线程)(1)
如图: 思路: ①首先创建服务器端Socket,指定并侦听某一个端口,然后循环监听开始等待客户端的连接…. ②创建客户端socket,指定服务器地址和端口,然后获取输出流,向服务器端发送请求,并关闭s ...
- [poj2955/nyoj15]括号匹配(区间dp)
解题关键:了解转移方程即可. 转移方程:$dp[l][r] = dp[l + 1][r - 1] + 2$ 若该区间左右端点成功匹配.然后对区间内的子区间取max即可. nyoj15:求需要添加的最少 ...
- 为什么选择Netty
支持高并发访问 比核心 Java API 更好的吞吐量,较低的延时资源消耗更少,这个得益于共享池和重用减少内存拷贝 https://baike.baidu.com/item/Netty/1006162 ...
- Gym - 100851A Adjustment Office(O(1)求行列和)
Adjustment Office Gym - 100851A 2 3 4 3 4 5 4 5 6 n<=10^6,q&l ...
- 使用LinearLayout实现ListView,解决ListView和ScrollView滚动冲突
在项目中,我们常常会遇到一个ScrollView里面会嵌套ListView的情况,但往往你会发现,ListView和ScrollView的滚动时间会有冲突问题,造成ListView不能完全显示.虽然网 ...
- CentOS 安装Perl环境
参考博文:https://blog.csdn.net/weixin_40192129/article/details/78610974 vmware tools需要perl环境的支持 安装perl支持 ...
- mysql 快速导入大SQL文件
进入mysql mysql -u root -p 创建数据库 CREATE DATABASE 数据库名; 设置参数 set sql_log_bin=OFF;//关闭日志 ;//关闭autocommit ...
- php UTF8 转字节数组,后使用 MD5 计算摘要
Hex.encodeHexString(md5.digest);按 UTF8 转字节数组,后使用 MD5 计算摘要,得到 16 字节数组,使用 Hex 转为长度为 32 的字符串,保持小写 bin2h ...
- 平衡的阵容 st表学习
模板 预处理 void rmq_isit() { ;i<=n;i++) mx[i][]=mn[i][]=a[i]; ;(<<j)<=n;j++) ;i+(<<j)- ...