介绍:

Swift是苹果2014年推出的全新编程语言,它继承了C语言、ObjC的特性,且克服了C语言的兼容性问题。Swift发展过程不仅保留了Objc很多语言特性,他也借鉴了多种现代化语言的特点,在其中可以看到C#、Java、JavaScript、Python等多种语言的影子。同时在2015年WWDC上苹果还宣布了Swift的新版本Swift2.0,Swift是开源的,还支持iOS、OS X、Linux。

Swift2.0官方中文版+100个必备tips:http://download.csdn.net/detail/shaoting19910730/9189677

基础部分:

第一个Swift程序:

  1. import Foundation
  2.  
  3. /**
  4. * Swift没有main函数,默认从top level code的上方开始自上而下执行(因此不能有多个top level代码)
  5. */
  6. println("Hello, World!")

从上面得代码可以看出:

1、Swift没有main函数,从top level code的上方开始往下执行 ,即第一个非声明语句开始执行(表达式、控制结构、类、结构体、枚举、方法等属于声明语句),不能存在多个top level code文件,否则编译器不能确定执行入口,事实上swift隐含了一个main函数,这个main函数会设置并且调用全局“C_ARGC C_ARGV”并调用由top level code构成的top_level_code()函数。

2、Swift通过import引入其他类库。

3、Swift语句不需要双引号结尾,除非一行之中有多个语句。

数据类型 

Swift包含了C和Objc语句中的所有基础类型:Int整形、Float和Double浮点型、Bool布尔型、Character字符型、String字符串类型、enum枚举、struct结构体构造类型、Array数组、Set集合、Dictionary字典集合类型,不仅如此还增加了高阶数据类型:元组(Tuple),可选类型(Optinal)。

基础类型

Xcode从6.0开始加入了Playground代码测试,可以实时查看代码执行结果,下面使用Playground简单演示一下Swift的基础内容,对Swift有个简单的认识:

  1. import Foundation
  2.  
  3. var a:Int= //通过var定义一个变量
  4.  
  5. //下面变量b虽然没有声明类型,但是会自动进行类型推断,这里b推断为Int类型
  6. var b=
  7.  
  8. var c:UInt=
  9. let d=a+b //通过let定义一个常量
  10.  
  11. //下面通过"\()"实现了字符串和变量相加(字符串插值),等价于println("d="+String(d))
  12. println("d=\(d)") //结果:d=3
  13.  
  14. //注意由于Swift是强类型语言,a是Int类型而c是UInt类型,二者不能运算,下面的语句报错;但是注意如果是类似于:let a=1+2.0是不会报错的,因为两个都是字面量,Swift会首先计算出结果再推断a的类型
  15. //let e=a+c
  16.  
  17. //Int.max是Int类型的最大值,类似还有Int.min、Int32.max、Int32.min等
  18. let e=Int.max //结果:9223372036854775807
  19.  
  20. var f:Float=1.0
  21. var g=2.0 //浮点型自动推断为Double类型
  22.  
  23. var h:String="hello "
  24.  
  25. //emoj表情也可以作为变量或者常量,事实上所有Unicode字符都是可以的
  26. var
  27. swift初识的更多相关文章

      1. Swift_初识Swift
      1. 初识Swift语言 Swift结合了COC的优点并且不受C兼容性的限制.Swift采用安全的编程模式并添加了很多新特性,这将是编程更简单,更灵活也更有趣,Swift是基于成熟而且倍受喜爱的Cocoa ...

      1. 初识你---------Swift【下篇】
      1. Swift中的结构体 Swift的结构体对比OC来说,可以添加初始化方法.可以遵守代理协议等,同时:SwiftBool类型的变量也是一个结构体,所以只能选择truefalse. Swift中声明结 ...

      1. 初识 swift 封装轮播图
      1. 一.简介 换了一家公司.换了一个环境刚开始来公司自然不能有一丝一毫的放松,每天即使是没有什么工作也是看看这个博客.那个源码.尽量让自己更充实.慢慢的开始写几篇博客记录下自己遇到的一些问题和解决方法.其 ...

      1. 初识Swift中的值和引用,循坏引用、代理的注意点
      1. 1.0 Swift中分有值类型和引用类型 Int .String . 结构体和枚举都属于值类型, 将值类型传递给方法是,将在内存中创建其副本,并传递这个副本:这样我们就可以随心所欲修改它,而不用担心 ...

      1. 初识 Swift编程语言(中文版)
      1. 前言 今天Apple公布了新的编程语言Swift.也提供了一本将近400页的 The Swift Programming Language(Swift编程语言). 尽管我没有开发人员账号.没法实际上机 ...

      1. Swift从入门到精通第八篇 - 方法 初识
      1. 方法(学习笔记) 环境Xcode 11.0 beta4 swift 5.1 方法 结构体.枚举.类都可以定义方法(实例方法.类型方法) 实例方法(Instance Methods) 实例方法只能用实例 ...

      1. Swift从入门到精通第十一篇 - 初始化 初识
      1. 初始化(学习笔记) 环境Xcode 11.0 beta4 swift 5.1 初始化 初始化是类.结构体.枚举生成实例的过程,为该类的每个存储属性设置初始值,有些在实例使用前的设置或初始化也可在此实现 ...

      1. Swift从入门到精通第十四篇 - 错误处理 初识
      1. 错误处理(学习笔记) 环境Xcode 11.0 beta4 swift 5.1 错误表现和抛出 swift 中,错误由符合 Error 协议的类型值表示 // 示例 enum VendingMac ...

      1. Swift从入门到精通第十五篇 - 类型转换 初识
      1. 类型转换(学习笔记) 环境Xcode 11.0 beta4 swift 5.1 类型转换 类型转换是检查实例类型的一种方法,或者检查来自类层级不同的父类或子类一个实例,用 is as 操作符 为类 ...

    1.  
    2. 随机推荐

        1. HDU----(3294Girls' research(manacher)
        1. Girls' research Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 65535/32768 K (Java/Others)T ...

        1. webform工程中aspx页面为何不能调用appcode文件夹下的类(ASP.NET特殊文件夹的用法)
        1. App_code 只有website类型的工程才有效. App_Code 下创建的.cs文件仅仅是“内容”不是代码.你设置那个文件为“编译”就行了. 其他特殊文件夹 1. Bin文件夹 Bin文件夹包 ...

        1. struts2 <s:iterator> status属性
        1. struts2 <s:iterator> status属性 转载▼   iterator标签主要是用于迭代输出集合元素,如list set map 数组等,在使用标签的时候有三个属性值得我 ...

        1. mouseover hover 方法
        1. mouseover  hover 方法的不同?jquery   hover包括了鼠标移到对象上,同时鼠标再移出对象的过程,相应的子类也被选中. mouseover是鼠标经过对象时,不包含他的子类同时 ...

        1. Front EndJavascript兼容问题收集(转)
        1. 1 select标签,就有诸多不兼容: A. cloneNode方法,对于非IE浏览器没有问题,对于IE浏览器, 遇到的问题包括:     1)option selected的会clone不过去,然后 ...

        1. JavaScript EventLoop
        1. 转自:http://cek.io/blog/2015/12/03/event-loop/ What is JavaScript What is JavaScript anyway? Some word ...

        1. node 事件循环
        1. 什么是事件循环 Node只运行在一个单一线程上,至少从Node.js开发者的角度是这样的.在底层, Node是通过libuv来实现多线程的. Libuv库负责Node API的执行.它将不同的任务分配 ...

        1. [转]Java FileInputStreamFileReader的区别
        1. 在解释JavaFileInputStreamFileReader的具体区别之前,我想讲述一下JavaInputStreamReader的根本差异,以及分别什么时候使用InputStreamR ...

        1. POJ 2159 Ancient Cipher 难度:0
        1. 题目链接:http://poj.org/problem?id=2159 #include <cstring> #include <cstdio> #include <cc ...

        1. Echarts 地图控件tooltip多行显示
        1. 直接上代码 var o = { "tooltip": { trigger: 'item', "formatter": function (params) { v ...