Objective-C开发者,一天学会swift
来源:互联网 发布:html与java关系 编辑:程序博客网 时间:2024/04/27 21:28
之前一直一个人在工作,时间很紧,工作中一直没用过swift开发,虽然一直对swift心生向往,但是就没有抽时间去学习 swift ,昨天元旦堵车,所以就近找了家咖啡店坐下,无聊拿起平板看起了swift,看了许久,发现swift语言根本没有想象中的难。对于使用OC开发的IOS开发者来说,swift极其简单。唯一能限制他们学习进度的,我想就是没有人把swift上的一些属性总结起来,废话不多说,我现在就尝试把swift总结起来,以此作为自己学习swift的笔记
基础类型
常量和变量
//常量和变量//let - constants常量 let maxNum=32//var - variables变量 var index=0let maxNum=1000var index=0;//maxNum=999 error常量不能赋值var x=0.0,y=0.0,z=0.0//类型安全 当初始化是什么类型一般,就是什么类型//index="test" error类型不能改变var wevsiteName:String//初始化的时候申明变量类型wevsiteName="www.baidu.com"var red,greem,blue:Double//同时申明类型 ,类型有哪几种我就不说了,会计算机编程语言的应该都会//可以用不同进制let decimalInt:Int=17 //17let binaryInt:Int=0b10001//17let octalInt:Int=0o21//17let hexadecimalInt:Int=0x11//17//数字可以用下划线更清楚得表示let bignum_a=1000000//1,000,000let bignum_b=1_000_000//1,000,000let bignum_c=100_0000//1,000,000let num_a:Float=1.0//1let num_b:Float=1.2//1.2let num_c:Int=1//1//let num_c:Int=1.2 error//相加let a:Int=3//3let b:Double=0.1415926//0.1415926//let pi:Double=a+b error ,不能将 Int 和double相加let pi:Double=Double(a)+b//3.1415926//能使用中文作为常量名let 电脑:String="mac"//mac
布尔型
//布尔型/** swift中的bool型不同于OC是YES OR NO,是true or false*/let imtrueVar=true;let imfalseVar=false;if imfalseVar//不加上()如果加上只代表运算优先级{ print("i'm true!")//不执行}else if 3+4==7{ print("3+4=7!")//执行}//var a:Int=1//if a{// print("i'm true")//}//error: int 1和0不能在选择语句中充当bool型的功能
元组
//元组 Tuples/* 1.将多个不同的值集合成一个数据 (true,"南京","人从",2105) 2.特点 可以有任意多个值 不同的值可以是不同类型*/let SearchPersonResult=(true,"南京","人从",2105)//取出元组中的值let (isSearchSuccess,city,Company,room)=SearchPersonResultisSearchSuccess//truecity//南京Company//人从room//2105//或者参照数组的取值SearchPersonResult.0//trueSearchPersonResult.1//南京SearchPersonResult.2//人从SearchPersonResult.3//2105//也可以在初始化的时候赋值let SearchPersonResultTwo=(isSearchSuccess:true,city:"南京",Company:"人从",room:2105)SearchPersonResultTwo.isSearchSuccess//trueSearchPersonResultTwo.city//南京SearchPersonResultTwo.Company//人从SearchPersonResultTwo.room//2105//使用下划线(_)忽略部分数值let SearchResult=(true,"南京")//let SearchResult:(Bool,String)=(true,"南京")let (SearchSuccess,_)=SearchResultif isSearchSuccess{ print("登录成功!")}
可选型
//Optionals 可选值/* 或者是一个值,或者是没有值 没有值时为nil*/var a:Inta=1var imOptionalVariable:Int?//nilimOptionalVariable=12//12//let userInput="abc"//var age=Int(userInput)//类型转换可失败构造,之前是toInt////if age != nil//{// print("your age is\(age)")//执行,不执行//}else//{// print("Invalidate userInput")//不执行//}let userInput="12"var age=Int(userInput)//类型转换可失败构造,之前是toIntif age != nil{ print("your age is\(age)")//执行->your age isOptional(12) print("your age is\(age!)")//执行->your age is12--当你确认可选值中有值时,可以在age签名后面加上!// print("your age is"+age)//error age是int型报错 print("your age is" + String(age))// your age isOptional(12) print("your age is" + String(age!))// your age is12 }else{ print("Invalidate userInput")//不执行}//可选型解包if let userAge=Int(userInput){ print("your age is \(userAge)")//执行 your age is 12}else{ print("Invalidate userInput")//不执行}let strA:String?="test"//teststrA//teststrA!//testlet strB:String!="test"strB//test
运算符
//运算符/*和OC一样*/let a=5let b=2var c=0//if c=a{//} error 运算符没有赋值操作//a/c a%c 不能除0let d=5.2,e=1.7d/e//3.058823529411765d%e//0.1000000000000003Int.max//9223372036854775807//Int.max+1 error 溢出c++ //0c //0++c //2c //2c+=2 //4c-=2 //2//三目运算符不用解释//var question{// answer1//}else//{// answer2//}//question?answer1:answer2let statusBarHeight=20let basicViewHeight=548var inFullScreenMode:Bool=truevar viewHeight=basicViewHeight + (inFullScreenMode ? statusBarHeight : 0)
聚合运算符
//聚合运算符/* 针对可选型 a??b -> a != nil ? a! : b*/var userNickName:String?userNickName = "lijiajia"//if userNickName != nil//{// print("hello,\(userNickName!)")//}else//{// print("hello,Guest")//}//let outputName:String=userNickName != nil ? userNickName! : "Guest"let outputName:String=userNickName ?? "Guest"print("Hello," + outputName)//Hello,lijiajia
区间运算符
//区间运算符/* [a,b] a...b [a,b) a..<b*/for index in 1...10{ index//10 times}for index in 1..<10{ index//9 times}let courseNames = ["ddd","aa","cc"]for index in 0 ..< courseNames.count{ print(courseNames[index])//3times}
字符操作
//字符串/* let String->NSString var String_>NSMutableString*/var str="Hello, Playground"let str2="I'm an immutable string"str="hi"//str2="dd" error 常量 //遍历字符串for c in str.characters{ print(c)//2times}var ch:Character="!"//var ch:Character="!d" errorstr.append(ch) //hi!str//hi!//str +=ch errorvar str3="??"str += str3//hi!??str.characters.count//5
var str="Hello, Playground"//字符串拼接//String Concatenatingstr + "hello"//"Hello, Playgroundhello"str //"Hello, Playgroundhello"str += "hello,Amily"//Hello, Playgroundhello,Amilystr //Hello, Playgroundhello,Amilylet ch:Character = "!"str.append(ch)//Hello, Playgroundhello,Amilystr// Hello, Playgroundhello,Amily!//将这种类型插入字符串的时候\(变量名)let imInt:Int = 2let imDouble:Double = 3.111print("Int:\(imInt) double:\(imDouble)")//字符串比较let str_a = "abc"let str_b = "abc"str_a == str_b//truelet str_c = "abd"str_a < str_c // truelet str_d = "abcd"str_d < str_c //truelet chapterNames = ["1dgdg","2dgdg","3dgdg","4dgdg","2dgdg"]var count = 0for name in chapterNames{ if name.hasPrefix("2")//以2开头 { count++ }}countcount = 0for name in chapterNames{ if name.hasSuffix("2")//以2结尾 { count++ }}count
import Foundationvar str = "Hello playground"//Hello playgroundstr.hasPrefix("Hello")//truestr.capitalizedString//Hello Playgroundstr//转换大写str.uppercaseString//转换小写str.lowercaseString//trimvar str2 = " !hi!!!!! "//" !hi!!!!! "str2.stringByTrimmingCharactersInSet(NSCharacterSet.whitespaceCharacterSet())//"!hi!!!!!"str2.stringByTrimmingCharactersInSet(NSCharacterSet(charactersInString: " !"))//"hi"//splitvar str3 = "welcome to play swift"//"welcome to play swiftstr3.componentsSeparatedByString(" ")//"["welcome","to","play","swift"]str3 = "welcome to play swift!Step-by_Step learn from now"str3.componentsSeparatedByCharactersInSet(NSCharacterSet(charactersInString: " !-"))
var str = "welcome to play swift!Step-by_Step learn from now"//range str.rangeOfString("Step")//22..<26str.rangeOfString("Step", options: NSStringCompareOptions.BackwardsSearch, range: nil, locale: nil)//30..<34 反过来查找str.startIndexstr.endIndexlet strRange = Range<String.Index>(start: str.startIndex, end: str.endIndex)//0..<49let startIndex:String.Index = str.startIndexlet endIndex:String.Index = str.startIndex.advancedBy(10)let searchRange = Range<String.Index>(start: startIndex, end: endIndex)str.rangeOfString("Step", options: NSStringCompareOptions.CaseInsensitiveSearch, range: searchRange, locale: nil)//nil//substring var toIndex=str.startIndex.advancedBy(4)var fromIndex=str.startIndex.advancedBy(14)str.substringFromIndex(fromIndex)//ome to play swift!Step-by_Step learn from nowstr.substringToIndex(toIndex)//welcstr.substringWithRange(Range<String.Index>(start: toIndex, end:fromIndex))//ome to pla//inseartvar inseartIndex = str.startIndex.advancedBy(22)str.insert("!", atIndex:inseartIndex)//removestr.removeAtIndex(inseartIndex)str.removeRange(Range<String.Index>(start: str.startIndex, end:inseartIndex))// replacevar replaceEndIndex = str.startIndex.advancedBy(13)str.stringByReplacingCharactersInRange(Range<String.Index>(start: str.startIndex, end: replaceEndIndex), withString: "Step-by_Step")
0 0
- Objective-C开发者,一天学会swift
- swift初探(供objective c开发者参考)
- Swift要点:从Objective-C开发者的角度看Swift
- Objective-C开发者对Swift亮点的点评
- Objective-C 开发者对 Swift 亮点的点评
- Objective-C开发者对Swift亮点的点评
- 有了Swift,iOS开发者为何仍需掌握Objective-C?
- swift 一天入门,两天学会
- Objective-C 第一天
- Objective-C 第一天
- swift对比objective-c
- Swift Objective-C混用
- Objective-C迁移Swift
- Swift调用Objective-C
- Objective-C调用Swift
- Swift调用Objective-C
- Objective-C调用Swift
- Objective-c调用Swift
- 收藏的网址
- 有感 Visual Studio 2015 RTM 简介 - 八年后回归 Dot Net,终于迎来了 Mvc 时代,盼走了 Web 窗体时代
- java获取Class对象的几种方法
- 大话设计模式-适配器
- Mac OS X EI Capitan(10.11) vim7.4源码编译安装
- Objective-C开发者,一天学会swift
- Jquery学习笔记一
- bzoj1856 字符串 组合数学
- 数据结构JAVA内部排序
- Ternary Calculation
- 图像检索中BOW和LSH的一点理解
- C++程序设计课后习题及解答(第八章)
- 上天不需要你成功,只需要你尝试。waiting for life is waiting for death!
- STM32外设驱动篇——DHT11温湿度传感器