【Swift學習】Swift編程之旅(二)

来源:http://www.cnblogs.com/salam/archive/2016/04/08/5367618.html
-Advertisement-
Play Games

在本節將介紹一些最基礎的知識 swift提供自己版本的類型,下麵說明幾種簡單的類型 它也提供了3種主要的強大的集合類型,set集合,array數組,dictionary字典 和C一樣,Swift通過變數類存儲並通過變數名來關聯值。 Swift高級類型【OC中沒有】 1.Swift還提供了oc沒有的高 ...


  在本節將介紹一些最基礎的知識

  swift提供自己版本的類型,下麵說明幾種簡單的類型

Int       整型

Double和float  浮點型

String     字元串型

Bool      布爾型

 

  它也提供了3種主要的強大的集合類型,set集合,array數組,dictionary字典

 

  和C一樣,Swift通過變數類存儲並通過變數名來關聯值。

 

  Swift高級類型【OC中沒有】

1.Swift還提供了oc沒有的高級類型,比如元組(Tuple),元組可以讓你創建或者傳遞一組數據,比如作為函數的返回值時,你可以用一個元組可以返回多個值。  

2.可選類型,用於處理值缺失的情況。在swift中不僅類和對象可以為nil,任何類型都可以是nil。

 

swift是一門安全的語言,這意味著這門語言在你編碼時幫助你清理值的類型,你期望傳入一個String類型的值,類型安全會阻止你傳入一個int值,當傳入時會發生編譯時錯誤。

 

下麵詳細介紹一下swift的幾種簡單數據類型

 

一、整型integer

  swift提供有符號和無符號整數。這些整數遵循命名約定類似於C,在一個8位無符號整數是uint8類型,和一個32位有符號整數類型Int32。你可以獲取到不同整型數據的最大值和最小值。

UInt8.min 8位整數的最小值  UInt8.max最大值。

 

  Int

  在大多數情況下,在你的代碼中你不需要選擇一個特定大小的整數。SWIFT提供一個額外的整數類型,int,長度範圍與當前平臺相等
  在32位平臺,int與Int32的大小相同。
  在64位平臺上,int與 int64的大小相同。
除非你需要工作與一個特定大小的整數,總是使用int整數值在您的代碼。這有助於代碼的一致性和互操作性。即使在32位平臺,int可以存儲任何價值之間- 2147483648到2147483647,足夠大的整數範圍。

 

  UInt

  還提供了一個無符號的整數類型,uint,長度範圍與當前平臺相等
  在32位平臺、uint是UInt32的大小相同。
  在64位平臺上,uint是UInt64的大小相同。

  註意
  儘量不要使用UInt,除非你真的需要存儲一個和當前平臺原生字長相同的無符號整數。除了這種情況,最好使用Int,即使你要存儲的值已知是非負的。統一使用Int可以提高代碼的可復用性,避免不同類型數值之間的轉換,並且匹配數字的類型推測。

 

二、浮點數值

Swift 提供了兩種有符號浮點數類型 

- Double表示64位浮點數。當你需要存儲很大或者很高精度的浮點數時請使用此類型。

- Float表示32位浮點數。精度要求不高的話可以使用此類型。

 

  類型安全和類型推測

 Swift 是類型安全的,所以它會在編譯你的代碼時進行類型檢查(type checks),並把不匹配的類型標記為錯誤。這可以讓你在開發的時候儘早發現並修複錯誤。類型檢查可以幫你避免錯誤。然而,這並不是說你每次聲明常量和變數的時候都需要顯式指定類型。如果你沒有顯式指定類型,Swift 會使用類型推測(type inference)來選擇合適的類型。有了類型推測,編譯器可以在編譯代碼的時候自動推測出表達式的類型。原理很簡單,只要檢查你賦的值即可。因為有類型推測,和 C 或者 Objective-C 比起來 Swift 很少需要聲明類型。常量和變數雖然需要明確類型,但是大部分工作並不需要你自己來完成。當推測浮點數的類型時,Swift 總是會選擇Double而不是Float。

 

  數值型字面量

十進位數,沒有首碼
二進位數,用0B首碼
八進位數,以0o首碼
十六進位數,一個0x首碼

 

  數值類型轉換

整數和浮點數的轉換必須顯式指定類型

 

  類型別名

類型別名(type aliases)就是給現有類型定義另一個名字。你可以使用typealias關鍵字來定義類型別名

typealias AudioSample = UInt16

 

 

  Booleans布爾值

 Swift 有一個基本的布爾(Boolean)類型,叫做Bool。布爾值指邏輯上的(logical),因為它們只能是真或者假。Swift 有兩個布爾常量,true和false:


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

-Advertisement-
Play Games
更多相關文章
  • 前言 在iOS開發中,很多公司對項目的版本控制管理都使用了git,當然也有部分公司使用的是svn。當年我最初接觸的是svn,覺得使用起來挺方便的,但是每次切分支都需要下載一份新的代碼起來,這實在太麻煩了,而且公司的網路下載一個項目的所有資源起來也有數百M,這還用工作麽? 當年,第一次聽說github ...
  • 1、墨刀 https://modao.cc/ ...
  • Android內打日誌用的當然是Log.i(tag,string),調試時的日誌輸出可以很快的反映一些問題,方便我們跟進。 但是如果連日誌都打不出來了怎麼辦呢,我今天就遇到了比較坑的問題。項目里別的日誌都輸出正常,偏偏我寫的Log.i沒有列印出東西,過濾器,進程,什麼的,都設置好了,日誌死活出不來。 ...
  • 上次學習了 "iOS學習筆記09 核心動畫CoreAnimation" ,這次繼續學習動畫,上次使用的 很多人感覺使用起來很繁瑣,有沒有更加方便的動畫效果實現呢?答案是有的,那就是 UIView動畫封裝 一、UIView動畫 蘋果知道圖層動畫使用麻煩,就為我們封裝到了 里,使我們可以簡單的實現各種動 ...
  • 最近打算寫一個系列的android初級開發教程,預計40篇以上的文章,結合我實際工作中的經驗,寫一些工作中經常用到的技術,讓初學者可以少走彎路,寫一個系列的話,大家學習起來也有頭有尾。 今天就從我們每天都會用到的TextView講起. 1.設置背景顏色 2.如何在程式裡面動態賦值 這裡可以直接是字元 ...
  • 本章繼續講解在Android開發中,數據的存儲與管理。涉及知識點:SQLite,SwipeRefreshLayout控制項刷新。 1.功能需求 練習使用SQLite 做一個登錄界面,資料庫欄位包含用戶名、密碼以及是否登錄中的狀態 模擬登錄成功後,將登錄的用戶名及登錄狀態(登錄中)寫入資料庫,並跳轉新頁 ...
  • 這幾天做了一個查看股票行情的app. 完成之後,當k線比較多的時候,app 對於捏合、拖動手勢的反應不太流暢, 主要原因是drawRect: 乾的活太多, 竟然需要40ms+, fps 自然不高 最後按照下麵這些原則,進行調整修改,流暢度提高不少,大多數的繪製時間控制在了10ms左右 總結如下: 1 ...
  • <!--StartFragment--> 本文主要介紹如何使用“SQLite3” 持久化方式。 Xcode 英文版: 1.“Create a new Xcode project” 2.“Choose a template for your new project”> iOS > Applicatio ...
一周排行
    -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.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...