Swift与C#的基础语法比较
背景:
这两天不小心看了一下Swift的基础语法,感觉既然看了,还是写一下笔记,留个痕迹~
总体而言,感觉Swift是一种前后端多种语言混合的产物~~~
做为一名.NET阵营人士,少少多多总喜欢通过对比来加深认识。
所以做了一个简单的比较列表。
下面是基础语法的比较:
|
Swift |
C#(4.0以上) |
|
|
常量定义: |
let name=”cyq.data” |
Const name=”cyq.data”; |
|
变量定义: 指定类型: |
var name=”cyq.data” var name:String=”cyq” |
var name=”cyq.data”; string name=”cyq”; |
|
类型转换: |
var i=3; var s:String=String(i) var s2:Strng=”\(i)” |
var i=3; var s=i.ToString(); var s2=Convert.ToString(i); var s3=(string)I; |
|
数组定义: |
var lis=[1,3] |
int[] list={1,2}; |
|
数组遍历: |
for item in list { } |
foreach (var item in list){ } |
|
字典定义: |
var dic=[“a”:”v1”,”b”:”v2”] |
var dic = new Dictionary<string, string>(); dic.Add("a","v1"); dic.Add("b", "v2"); |
|
字典遍历: |
for (key,value) in dic { var k=key var v=value } |
foreach (var item in dic) { var k= item.Key; var v = item.Value; } |
|
区间范围: |
for I in 0…200 { } |
for (int i = 0; i <= 200; i++){ } |
|
函数定义: |
func getName(a:Int)->Bool |
bool GetName(int a) |
|
可变参数: |
func getName(a:Int…) ->Bool { } |
bool GetName(params int[] items){ } |
|
属性定义: |
var name:String{ get{} set{} } |
string Name { get; set; } |
|
修饰符: |
public internal private 意思和C#的一致, 默认也是:internal 但没有Protect |
public internal private protect |
|
构造函数: |
class MyClass{ init() //都是这个名称 } |
class MyClass{ MyClass () //和类同名 } |
|
可选类型: 可空类型 |
var i:Int?=3 取值:i! |
int? i=3; 取值:i.Value |
|
(基)类参数: |
self、super |
this、base |
|
枚举定义: |
enum ABCF:Int { case A=1,B,C case F } enum ABCF{ case A case getName(Int) } 好变态~~~ |
enum ABCF{ A, B=1, C } 只有数字常量,没有字符或方法 |
|
扩展属性: 扩展方法: |
extenstion Int{ var i func toString() } |
public static class XXXx { public static string ToString(this int a) { return a.ToString(); } } |
|
协议: 接口: |
protocol MAction { } |
public interface IMAction { } |
总结:
Swift 由于是前后端混合的语言,因此,有大部分的语法是一致的:
包括运算符、分支、循环、类的继承等。
还有匿名函数lamda表达式也极相似。
Swift连闭包都有了,也可知道JavaScript的分量也不轻。
涉入太浅,也只能吐这么点知识了,哈~~
Swift与C#的基础语法比较的更多相关文章
- Swift超详细的基础语法-结构体,结构体构造器,定义成员方法, 值类型, 扩充函数
知识点 基本概念 结构体的基本使用 结构体构造器(构造函数/构造方法) 结构体扩充函数(方法), 又称成员方法 结构体是值类型 1. 基本概念 1.1 概念介绍 结构体(struct)是由一系列具有相 ...
- Swift - 34 - 闭包的基础语法
//: Playground - noun: a place where people can play import UIKit // 初始化一个整数数组 var arr = [1, 3, 5, 7 ...
- Swift基础语法学习总结(转)
Swift基础语法学习总结 1.基础 1.1) swift还是使用// 和/* */ 来注释,并且/* */允许多行注释. 1.2) swift使用print和println打印,它的传参是一个泛型 ...
- Swift基础语法学习总结
Swift基础语法学习总结Swift高级语法学习总结Swift语法总结补充(一) 1.基础 1.1) swift还是使用// 和/* */ 来注释,并且/* */允许多行注释. 1.2) swift ...
- Swift基础语法(常量变量、数据类型、元组、可选、断言)
本文来自Swift中文开发组,感谢翻译者的分享. 本文将分几部分对Swift对ios的语法做讲解.本文为第一节,主要讲解基础语法. 常量和变量 常量和变量把一个名字(比如maximumNumberOf ...
- Swift基础语法(二)
操作符 swift中运算符基本基础于c,下面我就给大家白话白话那些被优化过的运算符们 //加号减号的妙用 var a= var b= -a//此时b=-1 var c = +b//此时 c=-1 va ...
- [Swift2.0系列]Defer/Guard 基础语法
1.Defer Swift2.0中加入了defer新语法声明.defer译为延缓.推迟之意.那么在Swift2.0中它将被应用于什么位置呢?比如,读取某目录下的文件内容并处理数据,你需要首先定位到文件 ...
- swift3.0基础语法
swift 3.0 基础语法 目录 01-变量和常量 02-运算符 03-可选项 04-条件语句 05-循环 06-字符串 07-元组 08-数组 09-字典 10-对象和类 11-枚举 12-属性 ...
- swift3.0基础语法(2)
变量/常量,元组声明 var aaa = 0;//声明变量aaa 首次赋值时自动解析为Int类型 var aaa:Int = 0;//声明Int类型变量aaa let aaa = 0;//声明常量aa ...
随机推荐
- Unity3d学习 制作地形
这周学习了如何在unity中制作地形,就是在一个Terrain的对象上盖几座小山,在山底种几棵树,那就讲一下如何完成上述内容. 1.在新键得项目的游戏的Hierarchy目录中新键一个Terrain对 ...
- 利用CSS中的:after、: before制作的边三角提示框
小颖昨天分享了一篇参考bootstrap中的popover.js的css画消息弹框今天给大家再分享一篇使用:before和:after伪元素画消息弹框的CSS. 画出来是介个酱紫的: 有没有觉得画的萌 ...
- so 问题来了,你现在值多少钱?
年底了一大帮人都写着年底总结,总结一年做过的事.错过的事和做错的事.增长了多少本事,找没找到女朋友……来年做好升职加薪,要么做跳槽的准备,程序猿又开始浮躁了……. so 问题来了,你现在值多少钱? 这 ...
- 微信小程序初探
做为码农相信大家最近肯定都会听到微信小程序,虽然现阶段还没有正式开放注册,但大家可以还是可以开发测试. 到微信的WIKI(http://mp.weixin.qq.com/wiki?t=resource ...
- ,net core mvc 文件上传
工作用到文件上传的功能,在这个分享下 ~~ Controller: public class PictureController : Controller { private IHostingEnvi ...
- 浅谈Web自适应
前言 随着移动设备的普及,移动web在前端工程师们的工作中占有越来越重要的位置.移动设备更新速度频繁,手机厂商繁多,导致的问题是每一台机器的屏幕宽度和分辨率不一样.这给我们在编写前端界面时增加了困难, ...
- SNMP简单网络管理协议
声明:以下内容是学习谌玺老师视频整理出来(http://edu.51cto.com/course/course_id-861.html) SNMP(Simple Network Management ...
- MongoDB常用操作--集合1
1.创建集合有两种方式,显示创建和隐式创建 显示创建可以使用命令 db.createCollection("集合名称") 隐式创建可以使用命令 db.集合名称.insert({}) ...
- 关于Hadoop用户体系的设想(胡思乱想)
关于Hadoop的用户体系设计设想 Hadoop并没有一个完整的用户体系,其权限控制的对象,主要是Linux的其它用户(即非安装Hadoop的用户),控制方式也和Linux的文件权限很像,目前权限控制 ...
- eclipse,myeclipse 误删文件,回滚历史文件操作
昨天因为误操作把一个写了一上午的代码给删了,找到的这个,以前竟然还没发现有这个功能- -! 具体操作: 1.建立同路径同名的文件 2.文件上右键 --> Compare With --> ...