swift初识
介绍:
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程序:
- import Foundation
- /**
- * Swift没有main函数,默认从top level code的上方开始自上而下执行(因此不能有多个top level代码)
- */
- 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有个简单的认识:
- import Foundation
- var a:Int= //通过var定义一个变量
- //下面变量b虽然没有声明类型,但是会自动进行类型推断,这里b推断为Int类型
- var b=
- var c:UInt=
- let d=a+b //通过let定义一个常量
- //下面通过"\()"实现了字符串和变量相加(字符串插值),等价于println("d="+String(d))
- println("d=\(d)") //结果:d=3
- //注意由于Swift是强类型语言,a是Int类型而c是UInt类型,二者不能运算,下面的语句报错;但是注意如果是类似于:let a=1+2.0是不会报错的,因为两个都是字面量,Swift会首先计算出结果再推断a的类型
- //let e=a+c
- //Int.max是Int类型的最大值,类似还有Int.min、Int32.max、Int32.min等
- let e=Int.max //结果:9223372036854775807
- var f:Float=1.0
- var g=2.0 //浮点型自动推断为Double类型
- var h:String="hello "
- //emoj表情也可以作为变量或者常量,事实上所有Unicode字符都是可以的
- var
swift初识的更多相关文章
初识Swift语言 Swift结合了C和OC的优点并且不受C兼容性的限制.Swift采用安全的编程模式并添加了很多新特性,这将是编程更简单,更灵活也更有趣,Swift是基于成熟而且倍受喜爱的Cocoa ...
Swift中的结构体 Swift的结构体对比OC来说,可以添加初始化方法.可以遵守代理协议等,同时:Swift的Bool类型的变量也是一个结构体,所以只能选择true和false. Swift中声明结 ...
一.简介 换了一家公司.换了一个环境刚开始来公司自然不能有一丝一毫的放松,每天即使是没有什么工作也是看看这个博客.那个源码.尽量让自己更充实.慢慢的开始写几篇博客记录下自己遇到的一些问题和解决方法.其 ...
1.0 在Swift中分有值类型和引用类型 Int .String . 结构体和枚举都属于值类型, 将值类型传递给方法是,将在内存中创建其副本,并传递这个副本:这样我们就可以随心所欲修改它,而不用担心 ...
前言 今天Apple公布了新的编程语言Swift.也提供了一本将近400页的 The Swift Programming Language(Swift编程语言). 尽管我没有开发人员账号.没法实际上机 ...
方法(学习笔记) 环境Xcode 11.0 beta4 swift 5.1 方法 结构体.枚举.类都可以定义方法(实例方法.类型方法) 实例方法(Instance Methods) 实例方法只能用实例 ...
初始化(学习笔记) 环境Xcode 11.0 beta4 swift 5.1 初始化 初始化是类.结构体.枚举生成实例的过程,为该类的每个存储属性设置初始值,有些在实例使用前的设置或初始化也可在此实现 ...
错误处理(学习笔记) 环境Xcode 11.0 beta4 swift 5.1 错误表现和抛出 在 swift 中,错误由符合 Error 协议的类型值表示 // 示例 enum VendingMac ...
类型转换(学习笔记) 环境Xcode 11.0 beta4 swift 5.1 类型转换 类型转换是检查实例类型的一种方法,或者检查来自类层级不同的父类或子类一个实例,用 is 和 as 操作符 为类 ...
随机推荐
Girls' research Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 65535/32768 K (Java/Others)T ...
App_code 只有website类型的工程才有效. App_Code 下创建的.cs文件仅仅是“内容”不是代码.你设置那个文件为“编译”就行了. 其他特殊文件夹 1. Bin文件夹 Bin文件夹包 ...
struts2 <s:iterator> status属性 转载▼ iterator标签主要是用于迭代输出集合元素,如list set map 数组等,在使用标签的时候有三个属性值得我 ...
mouseover 和 hover 方法的不同?jquery hover包括了鼠标移到对象上,同时鼠标再移出对象的过程,相应的子类也被选中. mouseover是鼠标经过对象时,不包含他的子类同时 ...
1 select标签,就有诸多不兼容: A. cloneNode方法,对于非IE浏览器没有问题,对于IE浏览器, 遇到的问题包括: 1)option selected的会clone不过去,然后 ...
转自:http://cek.io/blog/2015/12/03/event-loop/ What is JavaScript What is JavaScript anyway? Some word ...
什么是事件循环 Node只运行在一个单一线程上,至少从Node.js开发者的角度是这样的.在底层, Node是通过libuv来实现多线程的. Libuv库负责Node API的执行.它将不同的任务分配 ...
在解释Java中FileInputStream和FileReader的具体区别之前,我想讲述一下Java中InputStream和Reader的根本差异,以及分别什么时候使用InputStream和R ...
题目链接:http://poj.org/problem?id=2159 #include <cstring> #include <cstdio> #include <cc ...
直接上代码 var o = { "tooltip": { trigger: 'item', "formatter": function (params) { v ...