这个可变参数的函数非常方便,效率也不错。不过貌似新手(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)
站点信息
- 文章2313
- 用户1336
- 访客11745341
每日一句
Light follows every storm.
风暴后总有光。
风暴后总有光。
jQuery打造漂亮的幻灯片效果
Linux查看进程及相关操作常用命令
解决安卓运行错误Error:Execution failed for task ':app:transformDexArchiveWithExternalLibsDexMergerForDebug
华为:你硬要打压,我偏要强大!
thinkpad t470p装黑苹果系统10.13.2
Android常用的数学函数说明
Android Studio使用DB Browser查看SQLite数据库
使用Putty上传文件?
关于IDEA的Spring boot项目创建慢,Maven插件加载慢,依赖导入慢或者失败的原因及解决方案
imencode和imdecode使用
element-UI组件实现拖拽效果
【教程】手把手教你开通淘小铺赚佣金
Android简单树状实现
新会员