Latest web development tutorials

พื้นฐานไวยากรณ์สวิฟท์

ในส่วนก่อนหน้านี้เราได้พูดคุยกันแล้วเกี่ยวกับวิธีการสร้างภาษาสวิฟท์ "Hello World!" โปรแกรม ตอนนี้เรามาตรวจสอบต่อไป

ถ้าคุณกำลังสร้างความจำเป็นที่จะแนะนำ OS X สนามเด็กเล่นโกโก้:

import Cocoa

/* 我的第一个 Swift 程序 */
var myString = "Hello, World!"

print(myString)

ถ้าเราต้องการที่จะสร้างสนามเด็กเล่น iOS ของคุณคุณต้องแนะนำ UIKit:

import UIKit
var myString = "Hello, World!"
print(myString)

โปรแกรมข้างต้นผลลัพธ์คือ:

Hello, World! 

รหัสข้างต้นเป็นโครงสร้างพื้นฐานของโปรแกรมสวิฟท์แล้วเราอธิบายในรายละเอียดส่วนหนึ่งของโครงสร้าง


สวิฟท์แนะนำ

เราสามารถใช้คำสั่งนำเข้าที่จะแนะนำกรอบของ Objective-C (หรือ C ห้องสมุด) ใด ๆ กับโปรแกรมสวิฟท์ยกตัวอย่างเช่นคำสั่งนำเข้าโกโก้นำเข้าห้องสมุดและใช้โกโก้ API ที่เราสามารถใช้พวกเขาในโครงการสวิฟท์

โกโก้ตัวเองจะถูกเขียนในภาษา Objective-C, วัตถุประสงค์ -C เป็น superset ที่เข้มงวดของภาษา C เพื่อให้เราสามารถใช้ในสวิฟท์รหัสภาษาผสมง่าย C หรือแม้กระทั่งรหัส c ++


มาร์คสวิฟท์

โปรแกรมสวิฟท์จากความหลากหลายของราชสกุลเครื่องหมายคำพูดอาจเป็นตัวระบุค่าคงที่สตริงหรือสัญลักษณ์ ตัวอย่างเช่นสวิฟท์, โปรแกรมต่อไปนี้ประกอบด้วยสามราชสกุล:

print("test!")
标记是:单词、符号
print
(
   "test!"
)

หมายเหตุ

ความคิดเห็นที่สวิฟท์กับภาษา C คล้ายกับบรรทัดเดียวความคิดเห็นที่เริ่มต้นด้วยสองทับขวา:

//这是一行注释

ความคิดเห็นหลายสายเริ่มต้นด้วย / * เพื่อ * / End:

/* 这也是一条注释,
但跨越多行 */

ความคิดเห็นหลายสายและภาษา C ที่แตกต่างกันหลายบรรทัดคิดเห็น Swift สามารถซ้อนกันในความคิดเห็นของหลายคู่สายอื่น ๆ ภายใน ถ้อยคำที่ถูกแทรกลงในอีกความเห็นหลายคู่สายในหลายความคิดเห็นบล็อก ความคิดเห็นที่สองบล็อกเมื่อปิดแล้วยังคงอยู่เบื้องหลังบล็อกความคิดเห็นแรก:

/* 这是第一个多行注释的开头

/* 这是嵌套的第二个多行注释 */

这是第一个多行注释的结尾 */

ความคิดเห็นหลายสายทำรังคือที่คุณสามารถได้อย่างรวดเร็วและง่ายดายในความคิดเห็นบล็อกแม้ว่าการป้องกันรหัสที่มีอยู่แล้วมีความคิดเห็น


อัฒภาค

แตกต่างจากภาษาอื่น ๆ ที่มีสวิฟท์ไม่จำเป็นต้องใช้ของอัฒภาคในตอนท้ายของแต่ละบรรทัดของคำสั่ง (;) แต่คุณจะต้องคั่นด้วยเครื่องหมายอัฒภาคในจำนวนเดียวกันของเส้นสั่งเป็นลายลักษณ์อักษร:

import Cocoa
/* 我的第一个 Swift 程序 */
var myString = "Hello, World!"; print(myString)

ตัวบ่งชี้

ตัวบ่งชี้คือการให้ตัวแปรค่าคงที่วิธีการฟังก์ชั่นการนับที่ระบุชื่อของโครงสร้างชั้นเรียนและโปรโตคอลอื่น ๆ ตัวอักษรที่ประกอบตัวระบุเป็นบรรทัดฐานบางอย่างการตั้งชื่อตัวระบุภาษาสวิฟท์ดังต่อไปนี้:

  • กรณีที่สำคัญ myname กับ myname สองตัวบ่งชี้ที่แตกต่างกัน

  • ตัวบ่งชี้ตัวอักษรตัวแรกสามารถ (_) หรือตัวอักษรเริ่มต้นด้วยการขีดเส้นใต้ แต่ไม่สามารถเป็นตัวเลข;

  • ตัวบ่งชี้อาจจะเป็นตัวละครอื่น ๆ ล่าง (_) ตัวอักษรหรือตัวเลข

ตัวอย่างเช่นชื่อผู้ใช้ User_Name, _sys_val สูงและระบุที่ถูกต้องตามกฎหมายอื่น ๆ และ 2mail ห้อง # ผิดกฎหมายและตัวบ่งชี้ระดับ

หมายเหตุ: ตัวอักษรสวิฟท์ใช้การเข้ารหัส Unicode [1]Unicode ที่เรียกว่าระบบการเข้ารหัสแบบครบวงจรซึ่งมีการเข้ารหัสข้อความเอเชียเช่นจีน, ญี่ปุ่น, เกาหลีและตัวละครอื่น ๆ และแม้กระทั่งอีโมติคอนที่เราใช้เครื่องมือการแชท

ถ้าคุณต้องใช้คำหลักที่เป็นตัวบ่งชี้คุณสามารถเพิ่มสำเนียงรอบคำหลัก ( `) ตัวอย่างเช่น:


คำหลัก

คำหลักคือลำดับตัวอักษรที่สงวนไว้คล้ายกับตัวระบุเว้นแต่การใช้สำเนียง ( `) เพื่อใส่หรือไม่สามารถนำมาใช้เป็นตัวบ่งชี้ คำหลักที่มีความสำคัญเป็นพิเศษที่กำหนดไว้ล่วงหน้าสำหรับคอมไพเลอร์ระบุลิขสิทธิ์ คำหลักทั่วไปสี่ต่อไปนี้

และงบคำหลักที่เกี่ยวข้อง

ชั้น deinit enum นามสกุล
func นำเข้า init ภายใน
ให้ ผู้ประกอบการ ส่วนตัว โปรโตคอล
สาธารณะ คงที่ struct ห้อย
typealias var

และงบคำหลักที่เกี่ยวข้อง

หยุด กรณี ต่อ ผิดนัด
ทำ อื่น fallthrough สำหรับ
ถ้า ใน กลับ สวิตซ์
ที่ไหน ในขณะที่

การแสดงออกและการพิมพ์คำ

ในขณะที่ dynamicType เท็จ เป็น
ศูนย์ ตนเอง ตนเอง ซุปเปอร์
จริง _COLUMN_ _FILE_ _FUNCTION_
_LINE_

คำหลักที่ใช้ในบริบทโดยเฉพาะอย่างยิ่ง

การเชื่อมโยง ความสะดวกสบาย พลวัต didSet
สุดท้าย ได้รับ มัด InOut
สันหลังยาว ซ้าย กรรมวิธี ไม่มีเลย
nonmutating ไม่จำเป็น เอาชนะ postfix
ฐานันดร อุปสรรค โปรโตคอล จำเป็นต้องใช้
ขวา ชุด ชนิด ที่ไม่มีเจ้าของ
อ่อนแอ willSet

พื้นที่สวิฟท์

สวิฟท์ไม่ใช่ภาษาเช่น C / C ++, Java เป็นพื้นที่สมบูรณ์ละเว้นการใช้สวิฟท์ของพื้นที่มีความต้องการบางอย่าง แต่ไม่เหมือนงูใหญ่เยื้องข้อกำหนดที่เข้มงวดน้อย

ในสวิฟท์, ผู้ประกอบการไม่สามารถปฏิบัติตามได้ทันทีที่ตัวแปรหรือคงที่ ตัวอย่างเช่นรหัสต่อไปนี้จะได้รับ:

let a= 1 + 2

ข้อผิดพลาดคือ:

error: prefix/postfix '=' is reserved

อาจหมายโดยตรงกับเครื่องหมายเท่ากับในด้านหน้าหรือด้านหลังใช้งานนี้สงวนไว้

รหัสต่อไปนี้จะถูกกำหนด (ทราบพื้นที่อย่างต่อเนื่อง):

let a = 1+ 2

ข้อผิดพลาดคือ:

error: consecutive statements on a line must be separated by ';'

เพราะนี่คือสวิฟท์ 1+ ที่จะเชื่อคำพูดนี้ถูกกว่า 2 เป็นคำสั่งต่อไป

เฉพาะในวิธีนี้จะไม่เขียนข้อผิดพลาด:

let a = 1 + 2;  // 编码规范推荐使用这种写法
let b = 3+4 // 这样也是OK的

สวิฟท์ตัวอักษร

ที่เรียกว่าอักษรหมายถึงจำนวนสตริงหรือค่าบูลีนที่เฉพาะเจาะจงนี้สามารถชี้ตรงกับชนิดของตัวเองในท้องถิ่นและความคุ้มค่าสำหรับการกำหนดตัวแปร ยกตัวอย่างเช่นในต่อไปนี้:

42                 // 整型字面量
3.14159            // 浮点型字面量
"Hello, world!"    // 字符串型字面量
true               // 布尔型字面量