从C#到Swift,Swift学习笔记

  最近在学习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 = 0
var n = 0;

//C#中的情况,第一行会报错,告诉你少了分号
int i = 0
int n = 1;

  变量的定义

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

//-------Swift中的情况(说明:var 变量、let 常量)
//自动识别的情况
var i = 1        //自动识别i为整型Int
var k = 3.1415        //自动识别k为Double
var m = "Hello World!"        //自动识别m为String
//手动申明类型的情况
var p : String        //申明p为字符串(记得后面要初始化)
var q : Int = 1       //q为整型

//-------C#中的情况
string p;
int q = 1;

//也就是多了个冒号,然后变量名和类型位置换了一下

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

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

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

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

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

//-----Swift中元组定义
var a = ("你好乔布斯",2015,true,3.1415926)
//a值的结构应该是这样的(String,Int,Bool,Double)
//那么我们如何来解开它呢?两种方法
//第一种"a.下标",下标就是括号中值的顺序从0开始,PASS OC开发中这个叫点语法,我笑了,OC真是个大杂烩啊 

var a1 = a.0 //a1自动识别为String 且值为"你好乔布斯" 

var a2 = a.1 //a2自动识别Int 2015 

//第二种方法 

var (k1,k2,k3,k4) = a //那么k1 = a0 , k2 = a1 看的懂了吧
//等下面讲到函数(方法)的时候再来讲元组

  Swift中的逻辑语句

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

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

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

  For in

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

//-----C#中的 foreach 我就不在这里举例了

  强类型转换

//-----Swift中
var age = Int("21");

//-----C#中int age = int.parse("21"); 

//或者 

int age = (int)"21";

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

1

时间: 2024-10-15 06:31:27

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

【Swift】学习笔记(二)——基本运算符

运算符是编程中用得最多的,其包括一元,二元和三元 三种运算符.swift也和其它编程语言一样基本就那些,下面总结一下,也有它特有的运算符,比如区间运算符 1.一元运算符 =   赋值运算符,用得最多的啦,其不带任何返回值 +  加法(数字相加,也可用于字符拼接var ss = "a"+"b") -   减法 *   乘法 /   除法 % 求余(负号忽略,浮点数也可以求余) >  大于 <  小于 2.二元运算符 ++  自增(就是i = i + i的缩

《从零开始学Swift》学习笔记(Day 57)——Swift编码规范之注释规范:

<从零开始学Swift>学习笔记(Day 57)--Swift编码规范之注释规范:文件注释.文档注释.代码注释.使用地标注释 原创文章,欢迎转载.转载请注明:关东升的博客 前面说到Swift注释的语法有两种:单行注释(//)和多行注释(/*...*/).这里来介绍一下他们的使用规范. 文件注释 文件注释就在每一个文件开头添加注释,文件注释通常包括如下信息:版权信息.文件名.所在模块.作者信息.历史版本信息.文件内容和作用等. 下面看一个文件注释的示例: /* Copyright (C) 201

《从零开始学Swift》学习笔记(Day3)——Swift2.0之后增加的关键字

原创文章,欢迎转载.转载请注明:关东升的博客 看了之前的学习笔记知道了什么是关键字,现在提示各位在Swift 2.0之后增加defer.guard.repeat.catch.rethrows.throw.throws和try关键字,其中repeat关键字替代do - while循环中的do,即中repeat -while循环.而do关键字用于错误处理.catch.rethrows.throw.throws和try是错误处理关键字. 错误处理是Swift 2.0之后增加新内容. 欢迎关注关东升新浪

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

?? Swift 2.0学习笔记(Day5)--我所知道的标识符和keyword   原创文章,欢迎转载.转载请注明:关东升的博客 好多计算机语言都有标识符和keyword,一直没有好好的总结,就是这种用着,如今小小的整理一下Swift中的标识符和keyword. 什么是标识符呢? 标识符就是给变量.常量.方法.函数.枚举.结构体.类.协议等由开发者指定的名字. 事实上.构成标识符的字母是有一定规范的,Swift中命名规则是: 区分大写和小写.Myname与myname是两个不同的标识符: 标识

《从零开始学Swift》学习笔记(Day 11)——数据类型那些事儿?

原创文章,欢迎转载.转载请注明:关东升的博客    在我们学习语言时都会学到这种语言的数据类型,在Swift中数据类型有那些呢?整型.浮点型.布尔型.字符.字符串这些类型是一定有的,其中集合.枚举.结构体.类也是Swift中的数据类型.元组是Swift中特有的. 其他那些类型我们可能多少知道些或是听说过.元组是在Swift中有的,它是什么呢? 它是一种数据结构,在数学中应用广泛.在计算机科学中,元组是关系数据库中的基本概念,元组表中的一条记录,每列就是一个字段.因此在二维表里,元组也称为记录.

【Swift】学习笔记(一)——熟知 基础数据类型,编码风格,元组,主张

自从苹果宣布swift之后,我一直想了解,他一直没有能够把它的正式学习,从今天开始,我会用我的博客来驱动swift得知,据我们了解还快. 1.定义变量和常量 var  定义变量,let定义常量. 比如: var test = 1 test = 2 //变量能够改变值 let test = 1 test = 2 //常量不能改变值,编译器会报错 var test1=1,test2=2,test3=3 //逗号分隔多个变量 2.添加类型标注 在 var test = 1 这个样例中.test被swi

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

原创文章,欢迎转载.转载请注明:关东升的博客 用Playground编写Swift代码目的是为了学习.测试算法.验证想法和可视化看到运行结果,不是为了使最终的程序编译和发布. Playground程序运行①区域是代码编写视图:②区域是运行结果视图:③区域是时间轴视图:④区域是控制台视图,使用print等日志函数将结果输出到控制台,可以通过左下角的      按钮隐藏和显示控制台. 默认情况下时间轴视图是不显示的,可以通过助手编辑器打开Playground时间轴视图.在出现的工具栏中,单击打开助手

《从零开始学Swift》学习笔记(Day 49)——扩展声明

?? 原创文章,欢迎转载.转载请注明:关东升的博客 声明扩展的语法格式如下: extension 类型名 { //添加新功能 } 声明扩展的关键字是extension,"类型名"是Swift中已有的类型,包括类.结构体和枚举,但是我们仍然可以扩展整型.浮点型.布尔型.字符串等基本数据类型,这是因为这些类型本质上也是结构体类型.打开Int的定义如下: struct Int : SignedInteger { init() init(_ value: Int) static func co

初步swift语言学习笔记9(OC与Swift杂)

笔者:fengsh998 原文地址:http://blog.csdn.net/fengsh998/article/details/34440159 转载请注明出处 假设认为文章对你有所帮助,请通过留言或关注微信公众帐号fengsh998来支持我,谢谢! swift 语言出来后,可能新的项目直接使用swift来开发.但可能在过程中会遇到一些情况.某些已用OC写好的类或封装好的模块.不想再在swift 中再写一次.哪就使用混编.这个在IOS8中是同意的. 先中简单的入手,先研究在同一个project

初步swift语言学习笔记2(可选类型?和隐式可选类型!)

作者:fengsh998 原文地址:http://blog.csdn.net/fengsh998/article/details/28904115 转载请注明出处 假设认为文章对你有所帮助.请通过留言或关注微信公众帐号fengsh998来支持我,谢谢. 可选类型.隐式可选类型 在swift中.可选类型其根源是一个枚举型.里面有None和Some两种类型.事实上所谓的nil就是Optional.None, 非nil就是Optional.Some, 然后会通过Some(T)包装(wrap)原始值,这