这个可变参数的函数非常方便,效率也不错。不过貌似新手(2年左右)知道的人不多。不管是在C/C++,JAVA中都有这个,当然了,Swift也是如此,这样强大好用的功能怎么能缺少呢?
下面简单举例,因为比较简单,不像VC++中的valist有点小麻烦。上代码,自己看
因为对Swift不太熟,所以不知道有没有和Java中的StringBuffer或者StringBuild类没,我是直接用字符串连接。
调用方式:
结果:
再来一个生成json格式的字符串函数
结果:
当然了,也可以用字典生成。还能是对应的类型,如String,Int,Bool,Double,Float……
这个自己简单改下就可以了。我这里字符串格式的已经够用了。
后记:发现Swift中有NSMutableString这个类,所以用这个连接。
下面简单举例,因为比较简单,不像VC++中的valist有点小麻烦。上代码,自己看
static func getUrl(api:String, string:String ...)->String! { var buf:String = String("http://") buf += server buf += "/api/" buf += api buf += "?" if (string.count % 2) != 0 { print("参数长度必须为2的倍数") return buf } for(var i=0;i<string.count;i+=2){ buf += string[i] buf += "=" buf += string[i+1] if(i != string.count-2){ buf += "&" } } print(buf) return buf }
因为对Swift不太熟,所以不知道有没有和Java中的StringBuffer或者StringBuild类没,我是直接用字符串连接。
调用方式:
HttpFunction.getUrl("login", string: "user","ithtw","pwd","ithtw")
结果:
http://192.168.100.100/api/login?user=ithtw&pwd=ithtw
再来一个生成json格式的字符串函数
static func genJson(string:String ...)->String! { var buf = String() if (string.count % 2) != 0 { print("参数长度必须为2的倍数") return buf } for(var i=0;i<string.count;i+=2){ if i == 0 { buf += "{" } buf += """ buf += string[i] buf += """ buf += ":" buf += """ buf += string[i+1] buf += """ if(i != string.count-2){ buf += "," }else if i == string.count-2 { buf += "}" } } return buf }
let json = HttpFunction.genJson("name","ithtw","pwd","ithtw") print(json)
结果:
{"name":"ithtw","pwd":"ithtw"}
当然了,也可以用字典生成。还能是对应的类型,如String,Int,Bool,Double,Float……
这个自己简单改下就可以了。我这里字符串格式的已经够用了。
后记:发现Swift中有NSMutableString这个类,所以用这个连接。
static func genJson(string:String ...)->String! { let buf = NSMutableString() if (string.count % 2) != 0 { print("参数长度必须为2的倍数") return buf as String } for(var i=0;i<string.count;i+=2){ if i == 0 { buf.appendString("{") } buf.appendString(""") buf.appendString(string[i]) buf.appendString(""") buf.appendString(":") buf.appendString(""") buf.appendString(string[i+1]) buf.appendString(""") if(i != string.count-2){ buf.appendString(",") }else if i == string.count-2 { buf.appendString("}") } } return buf as String } private static func genUrl(api:String, string:String ...)->String! { let buf = NSMutableString() buf.appendString("http://") buf.appendString(server) buf.appendString("/api/") buf.appendString(api) if (string.count % 2) != 0 { print("参数长度必须为2的倍数") return buf as String } for(var i=0;i<string.count;i+=2){ if i == 0 { buf.appendString("?") } buf.appendString(string[i]) buf.appendString("=") buf.appendString(string[i+1]) if(i != string.count-2){ buf.appendString("&") } } return buf as String }
收藏的用户(0) X
正在加载信息~
推荐阅读
最新回复 (0)
站点信息
- 文章2300
- 用户1336
- 访客10860229
每日一句
True success inspires others to act.
真正的成功是激励他人行动。
真正的成功是激励他人行动。
语法错误: 意外的令牌“标识符”
全面理解Gradle - 定义Task
Motrix全能下载工具 (支持 BT / 磁力链 / 百度网盘)
谷歌Pixel正在开始起飞?
获取ElementUI Table排序后的数据
Run-Time Check Failure #0 - The value of ESP was not properly saved across a function call. This is
亲测!虚拟机VirtualBox安装MAC OS 10.12图文教程
华为手机app闪退重启界面清空log日志问题
android ndk开发之asm/page.h: not found
手机屏幕碎了怎么备份操作?
免ROOT实现模拟点击任意位置
新手必看修改DSDT教程
thinkpad t470p装黑苹果系统10.13.2
新会员