最近在学习IOS,我一直使用的是C#来开发,对Java 、C、C++也有一定的了解。最近入手了一台Air,想试着学习IOS开发。

  如果你不是C#和Java阵营的,如果你对Swift没有兴趣,就不用往下看了,真的!

  

  一开始我的目标很明确,那就是学习OC,应为此语言经过多年的广泛应用,网上源代码很多,而且遇到的问题在百度和Google里也能很容易的找到资料,所以我一开始是奔着OC去的,但是几天的视频看下来,发现这OC语法只能用奇葩二字来形容,也许是我用惯了C#和Java的语法,也许是我个人的问题,反正我很讨厌OC的语法规则。

  接着我试着看了一下Swift语言,发现Swift与OC的语法差别很大,反而根C#、Java的语法非常相似,简直是太像了。这个不像是苹果的作风啊,呵呵。

  我一边在学习Swift,一边写这个文章,我呢是想到什么写些什么,文章结构会乱点,不过应该不会对阅读有太大的影响。

  写文章的目的是想让从C#和Java阵营对IOS开发有兴趣的朋友可以看一下,相对于C#和Java来说Swift有哪些不同和相似之处,以便大家能够更好更快的学习Swift!

  首先,我们来看看Swift前景。

  1、苹果公司将在2016年发布的IOS10和OS X系统中的系统应用,完全用Swift语言开发

  2、Swift语言参考C、JavaScript、Python、Java、C#(易用、高效、灵活)

  3、Swift版本迭代在加快

  4、15年年底开源

  得出:OC终有一天会退出历史舞台,就像被抛弃的孩子,我想很多OC开发者应该已经意识到了。但是OC开发者完全转去学习Swift会很不习它的语法,反而C#、Java的开发者能很快上手!!!!

  废话讲完了,下面我来罗列一下Swift语法与C#的语法有哪些相似与不同之处(Java和C#差不多,我以C#作为参考),我会不定期更新这个文章,会写清楚时间节点。

----------------------------------------------2015-7-11----------------------------------------------

  语句结束符号(;)

    Swift语法中语句末尾可以省略(;)号,但是你加上此(;)也不会出错,个人习惯问题,还是写上吧,我有强迫症。

//Swift中可以这样,末尾不加分号照样不报错,与JavaScript像不像?
var i =
var n = ; //C#中的情况,第一行会报错,告诉你少了分号
int i =
int n = ;

  变量的定义

    Swift中参数类型根据值自动识别,如果需要手动定义变量类型(未赋值初始值)的情况下格式为:  变量名 : 类型

//-------Swift中的情况(说明:var 变量、let 常量)
//自动识别的情况
var i = //自动识别i为整型Int
var k = 3.1415 //自动识别k为Double
var m = "Hello World!" //自动识别m为String
//手动申明类型的情况
var p : String //申明p为字符串(记得后面要初始化)
var q : Int = //q为整型 //-------C#中的情况
string p;
int q = ; //也就是多了个冒号,然后变量名和类型位置换了一下

  Swift中的元组,这个是好东西

  元组是什么,它能干什么,带来什么方便(也许我把元组放这里讲不合适,但是既然我想到了,就放这吧)

  1、元组的出现可以让我在方法结束时一次返回多个变量,而不用去定义一个结构体或New一个对象进行返回

  2、元组可以作为单独的结构定义

  接下来让我们来看一下如何定义元组

//-----Swift中元组定义
var a = ("你好乔布斯",,true,3.1415926)
//a值的结构应该是这样的(String,Int,Bool,Double)
//那么我们如何来解开它呢?两种方法
//第一种"a.下标",下标就是括号中值的顺序从0开始,PASS OC开发中这个叫点语法,我笑了,OC真是个大杂烩啊 var a1 = a. //a1自动识别为String 且值为"你好乔布斯" var a2 = a. //a2自动识别Int 2015 //第二种方法 var (k1,k2,k3,k4) = a //那么k1 = a0 , k2 = a1 看的懂了吧
//等下面讲到函数(方法)的时候再来讲元组

  Swift中的逻辑语句

//Swift中可以这样写if else语句(注:>=、<=、<、>、!=、||、&&同样也存在于Swift中)
if ==
{
语句块1
}
else
{
语句块2
}
//C#和Java开发者是不是感觉少了什么?没错,括号()
//那么我们加上括号对不对呢?没问题,照样对
if(==)
{
语句快
}

  For循环语句,和C#跟没差别

//---------Swift中的For语句(后面还会讲for in)
//没有圆括号
for var i = ;i<;i++
{
println(i);
}
//有圆括号
for(var k=;k<;k++)
{
println(k)
}

  For in

//-----Swift 中的遍历
var arr2 = []; //定义空数组,在这里说明一下
var arr = [,,,,,,,,,]; //数组定义,类型是自动识别 ,Int数组
for m in arr //变量m每次循环自动识别类型,所以这里不需要var了
{
println(m); //打印
}
//下面这个是和for循环一样的--> for var k = 0;k<1000;k++
for m in ...
{
println(m)
} //-----C#中的 foreach 我就不在这里举例了

  强类型转换

//-----Swift中
var age = Int(""); //-----C#中
int age = int.parse(""); //或者 int age = (int)"";

  三目运算符

//Swift中三目运算符和C#一致
var a = == ? : ; //结果a的值为2

今天就先写到这里吧,有点晚了~~下次再补充

从C#到Swift,Swift学习笔记的更多相关文章

  1. 《从零开始学Swift》学习笔记(Day 29)——访问级别

    Swift 2.0学习笔记(Day 29)——访问级别 原创文章,欢迎转载.转载请注明:关东升的博客 访问级别: Swift提供了3种不同访问级别,对应的访问修饰符为:public.internal和 ...

  2. 《从零开始学Swift》学习笔记(Day 13)——数据类型之整型和浮点型

    Swift 2.0学习笔记(Day 13)——数据类型之整型和浮点型 原创文章,欢迎转载.转载请注明:关东升的博客    Swift提供8.16.32.64位形式的有符号及无符号整数.这些整数类型遵循 ...

  3. 《从零开始学Swift》学习笔记(Day5)——我所知道的标识符和关键字

    Swift 2.0学习笔记(Day5)——我所知道的标识符和关键字   原创文章,欢迎转载.转载请注明:关东升的博客 好多计算机语言都有标识符和关键字,一直没有好好的总结,就是这样的用着,现在小小的整 ...

  4. 《从零开始学Swift》学习笔记(Day4)——用Playground工具编写Swift

    Swift 2.0学习笔记(Day4)——用Playground工具编写Swift 原创文章,欢迎转载.转载请注明:关东升的博客 用Playground编写Swift代码目的是为了学习.测试算法.验证 ...

  5. 《从零开始学Swift》学习笔记(Day 3)——Swift 2.0之后增加的关键字

    Swift 2.0学习笔记(Day 3)——Swift 2.0之后增加的关键字 原创文章,欢迎转载.转载请注明:关东升的博客 看了之前的学习笔记知道了什么是关键字,现在提示各位在Swift 2.0之后 ...

  6. 《从零开始学Swift》学习笔记(Day2)——使用Web网站编写Swift代码

    Swift 2.0学习笔记——使用Web网站编写Swift代码 原创文章,欢迎转载.转载请注明:关东升的博客 Swift程序不能在Windows其他平台编译和运行,有人提供了一个网站swiftstub ...

  7. 《从零开始学Swift》学习笔记http(Day1)——我的第一行Swift代码

    Swift 2.0学习笔记(Day1)——我的第一行Swift代码 原创文章,欢迎转载.转载请注明:关东升的博客 当第一次看到下面代码时我石化了,这些代码是什么东东?单词拼出来的? import Fo ...

  8. 《从零開始学Swift》学习笔记(Day5)——我所知道的标识符和keyword

     Swift 2.0学习笔记(Day5)--我所知道的标识符和keyword   原创文章,欢迎转载.转载请注明:关东升的博客 好多计算机语言都有标识符和keyword,一直没有好好的总结,就是这 ...

  9. 《从零開始学Swift》学习笔记(Day 1)——我的第一行Swift代码

     Swift 2.0学习笔记--我的第一行Swift代码 原创文章,欢迎转载. 转载请注明:关东升的博客 当第一次看到以下代码时我石化了.这些代码是什么东东?单词拼出来的? import Foun ...

  10. swift开发学习笔记-闭包

    版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/jiangqq781931404/article/details/32913421 文章转自:http ...

随机推荐

  1. jQuery的deferred对象详解(转)

    jQuery的开发速度很快,几乎每半年一个大版本,每两个月一个小版本. 每个版本都会引入一些新功能.今天我想介绍的,就是从jQuery 1.5.0版本开始引入的一个新功能----deferred对象. ...

  2. hadoop InputSplit

    /** * <code>InputSplit</code> represents the data to be processed by an * individual {@l ...

  3. select * from sys.sysprocesses

    MSDN:包含正在 SQL Server 实例上运行的进程的相关信息.这些进程可以是客户端进程或系统进程. 视图中主要的字段: 1. Spid:Sql Servr 会话ID 2. Kpid:Windo ...

  4. 【转载】网络攻击技术(三)——Denial Of Service & 哈希相关 & PHP语言 & Java语言

    找到了这个系列的原始作者: http://www.cnblogs.com/rush/archive/2012/02/05/2339037.html 最近网络安全成了一个焦点,除了国内明文密码的安全事件 ...

  5. solr6.6 配置自带中文分词

    1.配置solrconfig.xml solr的自带中文分词包在solr-6.6.0\contrib\analysis-extras\lucene-libs下 修改solrconfig.xml增加 & ...

  6. selenium 问题:Unable to connect to host 127.0.0.1 on port 7055 after 45000 ms

    问题:Unable to connect to host 127.0.0.1 on port 7055 after 45000 ms 原因: selenium-server-standalone-x. ...

  7. 使用tornado实现用户认证

    关于用户的登录状态,一部分的应用程序是采用session实现的. HTTP是一个无状态协议,用户的每次请求都是相互独立的,HTTP本身意识不到用户是否登录. 很多web框架选择将session存放在c ...

  8. 协程基础_context系列函数

    近期想看看协程,对这个的详细实现不太了解.查了下,协程最常规的做法就是基于makecontext,getcontext,swapcontext这类函数在用户空间切换用户上下文. 所以在这通过样例代码尽 ...

  9. sqlite3 sqlite3_prepare、sqlite3_step使用

    void select_by_prepare (sqlite3* pDB){ 51     int i; 52     int ret = 0; 53     int time; 54     cha ...

  10. windows系统下GCC的安装与配置

    刚开始看 C++ Primer,看到编译器的部分,自己搜了搜怎么搭建GCC,搜到以下内容,复制过来留个印象: windows系统下GCC的安装方法,以及一些环境变量的配置,如果对GCC不是很清楚,关于 ...