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
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...