Swift簡隈潤更歌深
<貧匯准
和匯准>
Swift 議“簡隈潤更?lexical structure?”宙峰阻泌採壓乎囂冱嶄喘忖憲會双更秀栽隈炎芝?怏撹乎囂冱嶄恷久蚊議旗鷹翠?旺壓岻朔議嫗准嶄喘噐宙峰囂冱議凪麿何蛍。
宥械?炎芝壓昧朔初府議囂隈埃崩和?喇 Swift 坿猟周議補秘猟云嶄戻函辛嬬議恷海徨堪伏撹。宸嶽圭隈各葎“恷海謄塘??longest match?”?賜宀“恷寄癖栽”?maximal munch?。
廣瞥?comments?瓜園咎匂輝恬腎易侃尖。汽佩廣瞥喇 // 蝕兵岷欺乎佩潤崩。謹佩廣瞥喇 /* 蝕兵?參 */ 潤崩。辛參廼耗廣瞥?徽廣吭廣瞥炎芝駅倬謄塘。
聞喘隠藻忖?reserved word?恬葎炎紛憲?俶勣壓凪念朔奐紗郡哈催 `。箭泌?class 音頁栽隈議炎紛憲?徽辛參聞喘`class`。郡哈催音奉噐炎紛憲議匯何蛍?`x` 才 x 燕幣揖匯炎紛憲。
液淫?closure?嶄泌惚短嗤苧鳩峺協歌方兆各?歌方繍瓜咨塀凋兆葎 0ドル、1ドル、2ドル... 宸乂凋兆壓液淫恬喘囃坪頁栽隈議炎紛憲。
噴序崙忖中楚淫根方忖 0 崛 9。屈序崙忖中楚峪淫根 0 賜 1?伊序崙忖中楚淫根方忖 0 崛 7?噴鎗序崙忖中楚淫根方忖 0崛 9 參式忖銚 A 崛 F ?寄弌亟譲辛?。
減屁方議忖中楚壓方忖念紗受催 -?曳泌 -42。
塋俯聞喘和皿? _ 栖奐紗方忖議辛響來?和皿?音氏唹峒忖中楚議峙。屁侏忖中楚匆辛參壓方忖念紗 0?揖劔音氏唹峒忖中楚議峙。
検泣侏忖中楚潮範喘噴序崙燕幣?涙念弸??匆辛參喘噴鎗序崙燕幣?紗念弸 0x?。
噴序崙検泣侏忖中楚?decimal floating-point literals?喇噴序崙方忖堪朔効弌方何蛍賜峺方何蛍?賜曾宀峻嗤?怏撹。噴序崙弌方何蛍喇弌方泣 . 朔効噴序崙方忖堪怏撹。峺方何蛍喇寄亟賜弌亟忖銚 e 朔効噴序崙方忖堪怏撹?宸堪方忖燕幣 e 岻念議方楚核參 10 議叱肝圭。箭泌?1.25e2 燕幣 1.25 ⨉ 10^2?匆祥頁 125.0?揖劔?1.25e?2 燕幣 1.25 ⨉ 10^?2?匆祥頁 0.0125。
噴鎗序崙検泣侏忖中楚?hexadecimal floating-point literals?喇念弸 0x 朔効辛僉議噴鎗序崙弌方何蛍參式噴鎗序崙峺方何蛍怏撹。噴鎗序崙弌方何蛍喇弌方泣朔効噴鎗序崙方忖堪怏撹。峺方何蛍喇寄亟賜弌亟忖銚 p 朔効噴序崙方忖堪怏撹?宸堪方忖燕幣p 岻念議方楚核參 2 議叱肝圭。箭泌?0xFp2 燕幣 15 ⨉ 2^2?匆祥頁 60?揖劔?0xFp-2 燕幣 15 ⨉ 2^-2?匆祥頁 3.75。
嚥屁侏忖中楚音揖?減議検泣侏忖中楚喇匯圷塰麻憲受催 - 才検泣侏忖中楚怏撹?箭泌 -42.0。宸旗燕匯倖燕器塀?遇音頁匯倖検泣屁侏忖中楚。
塋俯聞喘和皿? _ 栖奐膿辛響來?和皿?音氏唹峒忖中楚議峙。検泣侏忖中楚匆辛參壓方忖念紗 0?揖劔音氏唹峒忖中楚議峙。
辛參壓猟云侏忖中楚嶄聞喘議廬吶蒙歩憲催泌和?
忖憲匆辛參喘參和圭塀燕幣?
猟云侏忖中楚塋俯壓郡弍?弌凄催 \() 嶄峨秘燕器塀議峙。峨秘燕器塀?interpolated expression?音嬬淫根隆廬吶議褒哈催"、郡弍? \、指概憲賜宀算佩憲。燕器塀峙議窃侏駅倬壓 String 窃嶄嗤斤哘議兜兵晒圭隈。
箭泌?參和侭嗤猟云侏忖中楚議峙屢揖?
塰麻憲喇匯倖賜謹倖參和忖憲怏撹? /、=、-、+、!、*、%、<、>、&、|、^、~、.。匆祥頁傍?炎芝 =, ->、//、/*、*/、. 參式匯圷念弸塰麻憲 & 奉噐隠藻忖?宸乂炎芝音嬬瓜嶷亟賜喘噐徭協吶塰麻憲。
塰麻憲曾迦議腎易瓜喘栖曝蛍乎塰麻憲頁倦葎念弸塰麻憲?prefix operator?、朔弸塰麻憲?postfix operator?賜屈圷塰麻憲?binary operator?。号夸悳潤泌和?
參貧号夸俶廣吭匯泣?泌惚塰麻憲 ! 賜 ? 恣迦短嗤腎易?夸音砿嘔迦頁倦嗤腎易脅繍瓜心恬朔弸塰麻憲。泌惚繍 ? 喘恬辛僉窃侏?optional type?俐蔑?恣迦駅倬涙腎易。泌惚喘噐訳周塰麻憲 ? :?駅倬曾迦脅嗤腎易。
壓蒙協更撹嶄 ?參 < 賜 > 蝕遊議塰麻憲氏瓜蛍宣撹曾倖賜謹倖炎芝?複噫何蛍參揖劔議圭塀氏瓜壅肝蛍宣。咀緩?壓Dictionary<String, Array<Int>> 嶄短嗤駅勣耶紗腎易栖嶧茅液栽忖憲 > 議灘吶。壓宸倖箭徨嶄? 液栽忖憲 > 瓜心恬汽忖憲炎芝?遇音氏瓜列盾葎卞了塰麻憲 >>。
勣僥楼泌採徭協吶仟議塰麻憲?萩歌深 徭協吶荷恬憲 才 塰麻憲蕗苧。僥楼泌採嶷亟孖嗤塰麻憲?萩歌深 塰麻憲圭隈。
宥械?炎芝壓昧朔初府議囂隈埃崩和?喇 Swift 坿猟周議補秘猟云嶄戻函辛嬬議恷海徨堪伏撹。宸嶽圭隈各葎“恷海謄塘??longest match?”?賜宀“恷寄癖栽”?maximal munch?。
腎易嚥廣瞥
腎易?whitespace?嗤曾倖喘余?蛍侯坿猟周嶄議炎芝才曝蛍塰麻憲奉噐念弸珊頁朔弸??歌需 塰麻憲?壓凪麿秤趨和夸氏瓜策待。參和議忖憲氏瓜輝恬腎易?腎鯉?space??U+0020?、算佩憲?line feed??U+000A?、指概憲?carriage return??U+000D?、邦峠 tab?horizontal tab??U+0009?、換岷 tab?vertical tab??U+000B?、算匈憲?form feed??U+000C?參式腎?null??U+0000?。廣瞥?comments?瓜園咎匂輝恬腎易侃尖。汽佩廣瞥喇 // 蝕兵岷欺乎佩潤崩。謹佩廣瞥喇 /* 蝕兵?參 */ 潤崩。辛參廼耗廣瞥?徽廣吭廣瞥炎芝駅倬謄塘。
炎紛憲
炎紛憲?identifiers?辛參喇參和議忖憲蝕兵?寄亟賜弌亟議忖銚 A 欺 Z、和皿? _、児云謹囂冱中?Basic Multilingual Plane?嶄議 Unicode 掲怏栽忖憲參式児云謹囂冱中參翌議掲廨喘曝?Private Use Area?忖憲。遍忖憲岻朔?炎紛憲塋俯聞喘方忖才 Unicode 忖憲怏栽。聞喘隠藻忖?reserved word?恬葎炎紛憲?俶勣壓凪念朔奐紗郡哈催 `。箭泌?class 音頁栽隈議炎紛憲?徽辛參聞喘`class`。郡哈催音奉噐炎紛憲議匯何蛍?`x` 才 x 燕幣揖匯炎紛憲。
液淫?closure?嶄泌惚短嗤苧鳩峺協歌方兆各?歌方繍瓜咨塀凋兆葎 0ドル、1ドル、2ドル... 宸乂凋兆壓液淫恬喘囃坪頁栽隈議炎紛憲。
炎紛憲囂隈
identifier → identifier-head identifier-characters opt
identifier → ` identifier-head identifier-characters opt `
identifier → implicit-parameter-name
identifier-list → identifier | identifier , identifier-list
identifier-head → A 欺 Z 寄亟賜弌亟忖銚
identifier-head → U+00A8, U+00AA, U+00AD, U+00AF, U+00B2–U+00B5, 賜 U+00B7–U+00BA
identifier-head → U+00BC–U+00BE, U+00C0–U+00D6, U+00D8–U+00F6, 賜 U+00F8–U+00FF
identifier-head → U+0100–U+02FF, U+0370–U+167F, U+1681–U+180D, 賜 U+180F–U+1DBF
identifier-head → U+1E00–U+1FFF
identifier-head → U+200B–U+200D, U+202A–U+202E, U+203F–U+2040, U+2054, 賜 U+2060–U+206F
identifier-head → U+2070–U+20CF, U+2100–U+218F, U+2460–U+24FF, 賜 U+2776–U+2793
identifier-head → U+2C00–U+2DFF 賜 U+2E80–U+2FFF
identifier-head → U+3004–U+3007, U+3021–U+302F, U+3031–U+303F, 賜 U+3040–U+D7FF
identifier-head → U+F900–U+FD3D, U+FD40–U+FDCF, U+FDF0–U+FE1F, 賜 U+FE30–U+FE44
identifier-head → U+FE47–U+FFFD
identifier-head → U+10000–U+1FFFD, U+20000–U+2FFFD, U+30000–U+3FFFD, 賜 U+40000–U+4FFFD
identifier-head → U+50000–U+5FFFD, U+60000–U+6FFFD, U+70000–U+7FFFD, 賜 U+80000–U+8FFFD
identifier-head → U+90000–U+9FFFD, U+A0000–U+AFFFD, U+B0000–U+BFFFD, 賜 U+C0000–U+CFFFD
identifier-head → U+D0000–U+DFFFD 賜 U+E0000–U+EFFFD
identifier-character → 方忖 0 欺 9
identifier-character → U+0300–U+036F, U+1DC0–U+1DFF, U+20D0–U+20FF, or U+FE20–U+FE2F
identifier-character → identifier-head
identifier-characters → identifier-character identifier-characters opt
implicit-parameter-name → $ decimal-digits
購囚忖
瓜隠藻議購囚忖?keywords?音塋俯喘恬炎紛憲?茅掲瓜郡哈催廬吶?歌需 炎紛憲。- 喘恬蕗苧議購囚忖?class、deinit、enum、extension、func、import、init、let、protocol、static、struct、subscript、typealias、var
- 喘恬囂鞘議購囚忖? break、case、continue、default、do、else、fallthrough、if、in、for、return、switch、where、while
- 喘恬燕器才窃侏議購囚忖?as、dynamicType、is、new、super、self、Self、Type、__COLUMN__、__FILE__、__FUNCTION__、__LINE__
- 蒙協貧和猟嶄瓜隠藻議購囚忖?associativity、didSet、get、infix、inout、left、mutating、none、nonmutating、operator、override、postfix、precedence、prefix、right、set、unowned、unowned(safe)、unowned(unsafe)、weak、willSet?宸乂購囚忖壓蒙協貧和猟岻翌辛參瓜喘噐炎紛憲。
忖中楚
忖中峙燕幣屁侏、検泣侏方忖賜猟云窃侏議峙?訟箭泌和?42 // 屁侏忖中楚 3.14159 // 検泣侏忖中楚 "Hello, world!" // 猟云侏忖中楚
忖中楚囂隈
literal → integer-literal | floating-point-literal | string-literal
屁侏忖中楚
屁侏忖中楚?integer literals?燕幣隆峺協娼業屁侏方議峙。屁侏忖中楚潮範喘噴序崙燕幣?辛參紗念弸栖峺協凪麿議序崙?屈序崙忖中楚紗 0b?伊序崙忖中楚紗 0o?噴鎗序崙忖中楚紗 0x。噴序崙忖中楚淫根方忖 0 崛 9。屈序崙忖中楚峪淫根 0 賜 1?伊序崙忖中楚淫根方忖 0 崛 7?噴鎗序崙忖中楚淫根方忖 0崛 9 參式忖銚 A 崛 F ?寄弌亟譲辛?。
減屁方議忖中楚壓方忖念紗受催 -?曳泌 -42。
塋俯聞喘和皿? _ 栖奐紗方忖議辛響來?和皿?音氏唹峒忖中楚議峙。屁侏忖中楚匆辛參壓方忖念紗 0?揖劔音氏唹峒忖中楚議峙。
1000_000 // 吉噐 1000000 005 // 吉噐 5茅掲蒙歩峺協?屁侏忖中楚議潮範窃侏葎 Swift 炎彈垂窃侏嶄議 Int。Swift 炎彈垂珊協吶阻凪麿音揖海業參式頁倦揮憲催議屁方窃侏?萩歌深 屁方窃侏。
屁侏忖中楚囂隈
integer-literal → binary-literal
integer-literal → octal-literal
integer-literal → decimal-literal
integer-literal → hexadecimal-literal
binary-literal → 0b binary-digit binary-literal-characters opt
binary-digit → 方忖 0 賜 1
binary-literal-character → binary-digit | _
binary-literal-characters → binary-literal-character binary-literal-characters opt
octal-literal → 0o octal-digit octal-literal-characters opt
octal-digit → 方忖 0 崛 7
octal-literal-character → octal-digit | _
octal-literal-characters → octal-literal-character octal-literal-characters opt
decimal-literal → decimal-digit decimal-literal-characters opt
decimal-digit → 方忖 0 崛 9
decimal-digits → decimal-digit decimal-digits opt
decimal-literal-character → decimal-digit | _
decimal-literal-characters → decimal-literal-character decimal-literal-characters opt
hexadecimal-literal → 0x hexadecimal-digit hexadecimal-literal-characters opt
hexadecimal-digit → 方忖 0 欺 9, a 欺 f, 賜 A 欺 F
hexadecimal-literal-character → hexadecimal-digit | _
hexadecimal-literal-characters → hexadecimal-literal-character hexadecimal-literal-characters opt
検泣侏忖中楚
検泣侏忖中楚?floating-point literals?燕幣隆峺協娼業検泣方議峙。検泣侏忖中楚潮範喘噴序崙燕幣?涙念弸??匆辛參喘噴鎗序崙燕幣?紗念弸 0x?。
噴序崙検泣侏忖中楚?decimal floating-point literals?喇噴序崙方忖堪朔効弌方何蛍賜峺方何蛍?賜曾宀峻嗤?怏撹。噴序崙弌方何蛍喇弌方泣 . 朔効噴序崙方忖堪怏撹。峺方何蛍喇寄亟賜弌亟忖銚 e 朔効噴序崙方忖堪怏撹?宸堪方忖燕幣 e 岻念議方楚核參 10 議叱肝圭。箭泌?1.25e2 燕幣 1.25 ⨉ 10^2?匆祥頁 125.0?揖劔?1.25e?2 燕幣 1.25 ⨉ 10^?2?匆祥頁 0.0125。
噴鎗序崙検泣侏忖中楚?hexadecimal floating-point literals?喇念弸 0x 朔効辛僉議噴鎗序崙弌方何蛍參式噴鎗序崙峺方何蛍怏撹。噴鎗序崙弌方何蛍喇弌方泣朔効噴鎗序崙方忖堪怏撹。峺方何蛍喇寄亟賜弌亟忖銚 p 朔効噴序崙方忖堪怏撹?宸堪方忖燕幣p 岻念議方楚核參 2 議叱肝圭。箭泌?0xFp2 燕幣 15 ⨉ 2^2?匆祥頁 60?揖劔?0xFp-2 燕幣 15 ⨉ 2^-2?匆祥頁 3.75。
嚥屁侏忖中楚音揖?減議検泣侏忖中楚喇匯圷塰麻憲受催 - 才検泣侏忖中楚怏撹?箭泌 -42.0。宸旗燕匯倖燕器塀?遇音頁匯倖検泣屁侏忖中楚。
塋俯聞喘和皿? _ 栖奐膿辛響來?和皿?音氏唹峒忖中楚議峙。検泣侏忖中楚匆辛參壓方忖念紗 0?揖劔音氏唹峒忖中楚議峙。
10_000.56 // 吉噐 10000.56 005000.76 // 吉噐 5000.76茅掲蒙歩峺協?検泣侏忖中楚議潮範窃侏葎 Swift 炎彈垂窃侏嶄議 Double?燕幣64了検泣方。Swift 炎彈垂匆協吶 Float 窃侏?燕幣32了検泣方。
検泣侏忖中楚囂隈
floating-point-literal → decimal-literal decimal-fraction opt decimal-exponent opt
floating-point-literal → hexadecimal-literal hexadecimal-fraction opt hexadecimal-exponent
decimal-fraction → . decimal-literal
decimal-exponent → floating-point-e sign opt decimal-literal
hexadecimal-fraction → . hexadecimal-literal opt
hexadecimal-exponent → floating-point-p sign opt hexadecimal-literal
floating-point-e → e | E
floating-point-p → p | P
sign → + | -
猟云侏忖中楚
猟云侏忖中楚?string literal?喇褒哈催嶄議忖憲堪怏撹?侘塀泌和?"characters"猟云侏忖中楚嶄音嬬淫根隆廬吶議褒哈催 "、隆廬吶議郡弍?\、指概憲?carriage return?賜算佩憲?line feed?。
辛參壓猟云侏忖中楚嶄聞喘議廬吶蒙歩憲催泌和?
- 腎忖憲?Null Character?0円
- 郡弍??Backslash?\\
- 邦峠 Tab ?Horizontal Tab?\t
- 算佩憲?Line Feed?\n
- 指概憲?Carriage Return?\r
- 褒哈催?Double Quote?\"
- 汽哈催?Single Quote?\'
忖憲匆辛參喘參和圭塀燕幣?
- \x 朔効曾了噴鎗序崙方忖
- \u 朔効膨了噴鎗序崙方忖
- \U 朔効伊了噴鎗序崙方忖
猟云侏忖中楚塋俯壓郡弍?弌凄催 \() 嶄峨秘燕器塀議峙。峨秘燕器塀?interpolated expression?音嬬淫根隆廬吶議褒哈催"、郡弍? \、指概憲賜宀算佩憲。燕器塀峙議窃侏駅倬壓 String 窃嶄嗤斤哘議兜兵晒圭隈。
箭泌?參和侭嗤猟云侏忖中楚議峙屢揖?
"1 2 3" "1 2 \(3)" "1 2 \(1 + 2)" var x = 3; "1 2 \(x)"猟云侏忖中楚議潮範窃侏葎 String。怏撹忖憲堪議忖憲窃侏葎 Character。厚謹嗤購 String 才 Character 議佚連萩歌孚 忖憲堪才忖憲。
猟云侏忖中楚囂隈
string-literal → " quoted-text "
quoted-text → quoted-text-item quoted-text opt
quoted-text-item → escaped-character
quoted-text-item → ( expression )
quoted-text-item → 茅 "、\、U+000A 賜 U+000D 參翌議販採 Unicode 制婢忖憲鹿
escaped-character → 0円 | \ | \t | \n | \r | \" | \'
escaped-character → \x hexadecimal-digit hexadecimal-digit
escaped-character → \u hexadecimal-digit hexadecimal-digit hexadecimal-digit hexadecimal-digit
escaped-character → \U hexadecimal-digit hexadecimal-digit hexadecimal-digit hexadecimal-digit hexadecimal-digit hexadecimal-digit hexadecimal-digit hexadecimal-digit
塰麻憲
Swift 炎彈垂協吶阻俯謹辛工聞喘議塰麻憲?凪嶄寄何蛍壓 児粥塰麻憲 才 互雫塰麻憲 嶄序佩阻懐峰。宸戦繍宙峰陳乂忖憲嬬喘恬塰麻憲。塰麻憲喇匯倖賜謹倖參和忖憲怏撹? /、=、-、+、!、*、%、<、>、&、|、^、~、.。匆祥頁傍?炎芝 =, ->、//、/*、*/、. 參式匯圷念弸塰麻憲 & 奉噐隠藻忖?宸乂炎芝音嬬瓜嶷亟賜喘噐徭協吶塰麻憲。
塰麻憲曾迦議腎易瓜喘栖曝蛍乎塰麻憲頁倦葎念弸塰麻憲?prefix operator?、朔弸塰麻憲?postfix operator?賜屈圷塰麻憲?binary operator?。号夸悳潤泌和?
- 泌惚塰麻憲曾迦脅嗤腎易賜曾迦脅涙腎易?繍瓜心恬屈圷塰麻憲。箭泌?a+b 才 a + b 嶄議塰麻憲 + 瓜心恬屈圷塰麻憲。
- 泌惚塰麻憲峪嗤恣迦腎易?繍瓜心恬念弸匯圷塰麻憲。箭泌 a ++b 嶄議 ++ 瓜心恬念弸匯圷塰麻憲。
- 泌惚塰麻憲峪嗤嘔迦腎易?繍瓜心恬朔弸匯圷塰麻憲。箭泌 a++ b 嶄議 ++ 瓜心恬朔弸匯圷塰麻憲。
- 泌惚塰麻憲恣迦短嗤腎易旺諸効 .?繍瓜心恬朔弸匯圷塰麻憲。箭泌 a++.b 嶄議 ++ 瓜心恬朔弸匯圷塰麻憲?揖尖? a++ . b 嶄議 ++ 頁朔弸匯圷塰麻憲遇 a ++ .b 嶄議 ++ 音頁?.
參貧号夸俶廣吭匯泣?泌惚塰麻憲 ! 賜 ? 恣迦短嗤腎易?夸音砿嘔迦頁倦嗤腎易脅繍瓜心恬朔弸塰麻憲。泌惚繍 ? 喘恬辛僉窃侏?optional type?俐蔑?恣迦駅倬涙腎易。泌惚喘噐訳周塰麻憲 ? :?駅倬曾迦脅嗤腎易。
壓蒙協更撹嶄 ?參 < 賜 > 蝕遊議塰麻憲氏瓜蛍宣撹曾倖賜謹倖炎芝?複噫何蛍參揖劔議圭塀氏瓜壅肝蛍宣。咀緩?壓Dictionary<String, Array<Int>> 嶄短嗤駅勣耶紗腎易栖嶧茅液栽忖憲 > 議灘吶。壓宸倖箭徨嶄? 液栽忖憲 > 瓜心恬汽忖憲炎芝?遇音氏瓜列盾葎卞了塰麻憲 >>。
勣僥楼泌採徭協吶仟議塰麻憲?萩歌深 徭協吶荷恬憲 才 塰麻憲蕗苧。僥楼泌採嶷亟孖嗤塰麻憲?萩歌深 塰麻憲圭隈。
塰麻憲囂隈
operator → operator-character operator opt
operator-character → / | = | - | + | ! | *** | % | < | > | & | | | ^ | ~ | .
binary-operator → operator
prefix-operator → operator
postfix-operator → operator
<貧匯准
和匯准>