Swift Basic

Swift 是 iOS 和 OS X 应用开发的一门新语言,是在 C 和 Objective-C 的基础上提出的。

学习Swift之前,它的一些必备学习资料还是有的

  • Awesome-Swift-Education
    集合了大部分的swift的学习资料,非常齐全,就是没时间看,极力推荐。
  • Swift Guide
    这份指南汇集了Swift语言主流学习资源,并以开发者的视角整理编排。

上面两份中有重复的,但是确实可以。

当然分细一点
  • 苹果官方的开发者社区,这里有Swift的开发教程和指南,是个学习的地方。
  • 苹果官方github地址,源码还是可以要看的。
  • Swift Learn 实时更新,这是中文版Apple官方Swift教程《The Swift Programming Language》做到实时更新。
  • Swift周报,还是可以持续关注的。

基础部分

变量和常量
//简单举例
var oneString = "oneTest"  // 变量
let nowTimes = 0   // 常量
print(oneString,nowTimes)

但是像这样定义之后,一般会有警告 oneString 提示没有使用建议转换成 let 类型,说明var 是需要变化的。

类型标注
 var oneString :String // 变量
 // === NSString * oneString
 oneString = "twoTest"
类型推断

Swift 是一个类型安全(type safe)的语言。类型安全的语言可以让你清楚地知道代码要处理的值的类型。如果你的代码需要一个String,你绝对不可能不小心传进去一个Int。
由于 Swift 是类型安全的,所以它会在编译你的代码时进行类型检查(type checks),并把不匹配的类型标记为错误。这可以让你在开发的时候尽早发现并修复错误.

 let pi = 3.14159
// pi 会被推测为 Double 类型
  let meaningOfBasketball = 23
// meaningOfLife 会被推测为 Int 类型
nil 和 可选

nil 可以给可选变量赋值为nil来表示它没有值:

var serverResponseCode: Int? = 404
// serverResponseCode 包含一个可选的 Int 值 404
serverResponseCode = nil
// serverResponseCode 现在不包含值
var surveyAnswer: String?
// surveyAnswer 被自动设置为 nil

注意

使用!来获取一个不存在的可选值会导致运行时错误。
使用!来强制解析值之前,一定要确定可选包含一个非nil的值。

可选类型暗示了常量或者变量可以“没有值”。可选可以通过if语句来判断是否有值,如果有值的话可以通过可选绑定来解析值。
有时候在程序架构中,第一次被赋值之后,可以确定一个可选类型总会有值。在这种情况下,每次都要判断和解析可选值是非常低效的,因为可以确定它总会有值。这种类型的可选状态被定义为隐式解析可选类型(implicitly unwrapped optionals)。把想要用作可选的类型的后面的问号(String?)改成感叹号(String!)来声明一个隐式解析可选类型。

总结

发现基础这块是最难总结和概括的,需要后续项目经验的加深才能有更系统的理解,暂时只能大致记录,后面陆续增加中~~~

问题一、打印,只用Print,如何区分不同类型的?
print(_:separator:terminator:)

NSLog(@""); println(),都不用了,只用print

print("one====\(oneString)")
//日志打印 one====twoTest

但是打印浮点数的时候,我们需要

 let a = 0.12122
 let format = String(format:"%.2f",a)
 print("double==:\(format)" )
 // double==:0.12

此时我们最好为Double 写一个扩展

extension Double { 
      func format(f: String) -> String {   
                return String(format: "%\(f)f", self) 
           }
      }

let format0 = ".2"
print("double:\(a.format(format0))") // 这样就可以达到同样的效果啦 // double:0.12

备注:Double和Float的区别

  • Double表示64位浮点数。当你需要存储很大或者很高精度的浮点数时请使用此类型。
  • Float表示32位浮点数。精度要求不高的话可以使用此类型。

Double精确度很高,至少有15位数字,而Float最少只有6位数字。选择哪个类型取决于你的代码需要处理的值的范围。

你可能感兴趣的:(Swift Basic)