Swift與C#的基礎語法比較

来源:http://www.cnblogs.com/cyq1162/archive/2016/12/10/6156230.html
-Advertisement-
Play Games

這兩天不小心看了一下Swift的基礎語法,感覺既然看了,還是寫一下筆記,留個痕跡~總體而言,感覺Swift是一種前後端多種語言混合的產物~~~做為一名.NET陣營人士,少少多多總喜歡通過對比來加深認識。所以做了一個簡單的比較列表,詳情如下... ...


背景:

這兩天不小心看了一下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的分量也不輕。

涉入太淺,也只能吐這麼點知識了,哈~~

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 眼看就要期末了,我的專業課也迎來了第二次的期末作業 《網上購物系統》。雖然老師的意圖是在鍛煉我們後臺的能力,但是想著還是不利用網上的模板,準備自己寫,以來別人寫的靜態頁看不懂,再著可以鍛煉自己做網頁的能力。所以趁有點小進展就想分享自己的作業進展狀態。下麵是我頁面運行的截圖。 可能粘貼的圖片沒有任何的 ...
  • BFC 在上一篇文章中, "清除浮動方法解析" ,我們談及了一些使用css屬性解決浮動帶來的影響。但是在解決浮動帶來的影響的方法中,如果細心思考,會產生如下疑問: 為什麼 可以清除浮動帶來的影響? 能否用其他css屬性清除浮動帶來的影響? 種種的疑問,會讓你覺得CSS真的不容易精通,說精通過於高大上 ...
  • ...
  • layer至今仍作為layui的代表作,她的受眾廣泛並非偶然,而是這五年多的堅持,不斷完善和維護、不斷建設和提升社區服務,使得猿們紛紛自發傳播,乃至於成為今天的Layui最強勁的源動力。目前,layer已成為國內最多人使用的web彈層組件,GitHub自然Stars3000+,官網累計下載量達20w ...
  • OS Node.js提供了一些基本的底層操作系統的模塊 "OS" . API ...
  • 關於調試 當我們只專註於前端的時候,我們習慣性F12,這會給我們帶來安全與舒心的感覺。 但是當我們使用NodeJs來開發後臺的時候,我想噩夢來了。 但是也別泰國擔心,NodeJs的調試是很不方便!這是肯定的。 但是還好,我們有 "node inspector" 來幫助我們解決一部分的調試問題,但是對 ...
  • 秋招也算是正式結束了,現在整理一下筆記,當作鞏固一下知識,也希望這個對大家有幫助 http 緩存 和 cdn 緩存可以說是面試必問的問題,竟然是必問的問題,那就總結全面一點~ http緩存機制 秋招也算是正式結束了,現在整理一下筆記,當作鞏固一下知識,也希望這個對大家有幫助 http 緩存 和 cd ...
  • 學習H5 Web開發怎麼和安卓原生開發共存呢,React Native直接解決了這個問題:在運用H5開發的同時,還可以有效調用android原生態開發,直接兩者兼具,既保留了android原生開發也運用了H5 web開發。成本與效率共存。 ...
一周排行
    -Advertisement-
    Play Games
  • 示例項目結構 在 Visual Studio 中創建一個 WinForms 應用程式後,項目結構如下所示: MyWinFormsApp/ │ ├───Properties/ │ └───Settings.settings │ ├───bin/ │ ├───Debug/ │ └───Release/ ...
  • [STAThread] 特性用於需要與 COM 組件交互的應用程式,尤其是依賴單線程模型(如 Windows Forms 應用程式)的組件。在 STA 模式下,線程擁有自己的消息迴圈,這對於處理用戶界面和某些 COM 組件是必要的。 [STAThread] static void Main(stri ...
  • 在WinForm中使用全局異常捕獲處理 在WinForm應用程式中,全局異常捕獲是確保程式穩定性的關鍵。通過在Program類的Main方法中設置全局異常處理,可以有效地捕獲並處理未預見的異常,從而避免程式崩潰。 註冊全局異常事件 [STAThread] static void Main() { / ...
  • 前言 給大家推薦一款開源的 Winform 控制項庫,可以幫助我們開發更加美觀、漂亮的 WinForm 界面。 項目介紹 SunnyUI.NET 是一個基於 .NET Framework 4.0+、.NET 6、.NET 7 和 .NET 8 的 WinForm 開源控制項庫,同時也提供了工具類庫、擴展 ...
  • 說明 該文章是屬於OverallAuth2.0系列文章,每周更新一篇該系列文章(從0到1完成系統開發)。 該系統文章,我會儘量說的非常詳細,做到不管新手、老手都能看懂。 說明:OverallAuth2.0 是一個簡單、易懂、功能強大的許可權+可視化流程管理系統。 有興趣的朋友,請關註我吧(*^▽^*) ...
  • 一、下載安裝 1.下載git 必須先下載並安裝git,再TortoiseGit下載安裝 git安裝參考教程:https://blog.csdn.net/mukes/article/details/115693833 2.TortoiseGit下載與安裝 TortoiseGit,Git客戶端,32/6 ...
  • 前言 在項目開發過程中,理解數據結構和演算法如同掌握蓋房子的秘訣。演算法不僅能幫助我們編寫高效、優質的代碼,還能解決項目中遇到的各種難題。 給大家推薦一個支持C#的開源免費、新手友好的數據結構與演算法入門教程:Hello演算法。 項目介紹 《Hello Algo》是一本開源免費、新手友好的數據結構與演算法入門 ...
  • 1.生成單個Proto.bat內容 @rem Copyright 2016, Google Inc. @rem All rights reserved. @rem @rem Redistribution and use in source and binary forms, with or with ...
  • 一:背景 1. 講故事 前段時間有位朋友找到我,說他的窗體程式在客戶這邊出現了卡死,讓我幫忙看下怎麼回事?dump也生成了,既然有dump了那就上 windbg 分析吧。 二:WinDbg 分析 1. 為什麼會卡死 窗體程式的卡死,入口門檻很低,後續往下分析就不一定了,不管怎麼說先用 !clrsta ...
  • 前言 人工智慧時代,人臉識別技術已成為安全驗證、身份識別和用戶交互的關鍵工具。 給大家推薦一款.NET 開源提供了強大的人臉識別 API,工具不僅易於集成,還具備高效處理能力。 本文將介紹一款如何利用這些API,為我們的項目添加智能識別的亮點。 項目介紹 GitHub 上擁有 1.2k 星標的 C# ...