<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      ArkTS語言(一)

      學習ArkTS語言

      ArkTS是HarmonyOS的主要應用開發語言,在TypeScript基礎上進行了擴展,保留了其基本風格,并通過增強靜態檢查和分析來提高程序的穩定性和性能。本教程將幫助開發者掌握ArkTS的核心功能、語法及最佳實踐,以便高效地構建高性能移動應用。

      1. 數據與類型

      1.1 字面量

      字面量(Literal)是一種直接表示在源代碼中的固定值,不同類型的字面量格式有所不同,下面是ArkTS中各類型字面量的表示方式。

      ● 數值型字面量
      ○ 整數:數學中的整數(例如:8, 15, 123)
      ○ 浮點數(浮點型):帶有小數點的數字(例如:8.15, 1.234)
      ● 字符串型字面量:用單引號或雙引號括起來的文本(例如:'abc', "你好世界")
      ● 布爾型字面量:表示真假(例如:true, false)

      //1.整數型字面量
      console.log('整數:',60);       //60
      
      //2.浮點型字面量
      console.log('浮點數:',3.14)  //3.14
      console.log('浮點數:',.14)   //0.14
      console.log('浮點數:',1e2)   //100
      
      //3.布爾型字面量
      console.log('布爾型:',true)   //true
      console.log('布爾型:',false)   //false
      
      //4.字符串型字面量
      console.log('字符串:','Hello ArkTS')		  //Hello ArkTS
      console.log('字符串:',"Hello HarmonyOS") 	//Hello HarmonyOS
      

      1.2 變量

      在計算機語言中,變量可以理解為存儲數據的容器。在ArkTS中定義變量的格式如下。

      let 變量名: 類型 = 值
      
      let a:number = 10	//ArkTS
      

      定義各種類型的變量

      let title: string = 'HUAWEI Mate 60 Pro'
      console.log(title)
      

      1.3 類型

      ArkTS是一種靜態類型的語言,定義變量時必須明確數據類型。 ArkTS支持的數據類型有以下幾種。
      string 類型
      string 用于表示文本數據,可以包含字母、數字、符號和空格等。可以使用單引號(')、雙引號(")或反引號(`)來聲明字符串。反引號內可以嵌入表達式,形成模板字符串。

      let name: string = 'ArkTS!'; 
      let desc: string = "ArkTS是HarmonyOS的主要應用開發語言"
      let templateStr: string = `Hello,${name}. ${desc}`
      

      boolean 類型
      boolean 用于表示邏輯上的真值和假值。只有兩個值:true 和 false。

        let isDone: boolean = false;
      

      array 類型
      array即數組,它是一個存儲數據的容器,數組的長度由數組中元素的個數來確定。數組中第一個元素的索引為0。

      //											0					1			2
      let names: string[] = ['Alice', 'Bob', 'Carol'];
      names[0] = "愛麗絲"
      console.log(names[0])	//"愛麗絲"
      

      enum類型
      enum類型,又稱枚舉類型,是預先定義的一組命名值的值類型,其中命名值又稱為枚舉常量。
      使用枚舉常量時必須以枚舉類型名稱為前綴。

      enum ColorSet { 
        Red, 
        Green, 
        Blue 
      } 
      let c: ColorSet = ColorSet.Red;
      

      常量表達式可以用于顯式設置枚舉常量的值。

      enum Colors { 
        White = 0xFF, 
        Grey = 0x7F, 
        Black = 0x00 
      }
      let c: ColorSet = ColorSet.Black;
      

      union類型
      union類型,即聯合類型,是由多個類型組合成的引用類型。聯合類型可以包含了變量可能的所有類型

      let a1: string | number | ColorSet | string[] | ColorSet[] = "red" //正確
      let a2: string | number | ColorSet | string[] | ColorSet[] = 0xff00 //正確
      let a6: string | number | ColorSet | string[] | ColorSet[] = true //錯誤
      

      Aliases類型
      Aliases類型為別名類型,可以為已有類型提供替代名稱,或者為匿名類型(數組、函數、對象字面量或聯合類型)提供名稱。

      // 為number類型取一個別名為int
      type int = number
      let a: number = 10
      let b: int = 10
      
      // 定義Type為聯合類型
      type Type = string | number | ColorSet | string[] | ColorSet[]
      let a7:Type = "黃色"
      

      1.4 常量

      常量是不會發生改變的數據,它只能被賦值一次。定義格式如下

      const 常量名: 類型 = 值
      

      例:在數學中有一個非常重要的常量,就是圓周率π

      const PI: number = 3.1415926
      PI = 31.4 //這是錯誤的,變量的值只能被賦值一次。
      

      1.5 類型推斷

      由于ArkTS是一種靜態類型語言,所有數據的類型都必須在編譯時確定。但是,如果一個變量或常量的聲明包含了初始值,那么開發者就不需要顯式指定其類型。

      //以下兩種定義變量的方式都可以
      let a1: number = 10
      let a2 = "abc"
      

      1.6 命名規范

      不管定義變量還是定義常量,取名也是不是亂取的,是有一些命名規則的,必須遵守這些規則,否則代碼編譯不通過。

      1. 只能包含數字、字母、下劃線、$,不能以數字開頭
      2. 不能使用內置關鍵字或者保留字
      3. 嚴格區分大小寫
      

      1.7 undefined 空值

      先說結論,undefined表示一個變量它的值為“空值”,意思就是這個變量沒有值,其它就是undefined。
      有下面幾種情況,變量的值是undefined.

      情況一:變量沒有顯示的賦值,其值默認就是undefined
      變量沒有顯示的賦值,但是直接使用這個變量是不推薦的,所以編譯器會報錯。為了驗證上面的結論,我們可以使用強制斷言符號“!”,強制編譯通過。

      let a: string
      console.info(`${a}`)	//編譯報錯
      console.info(`${a!}`)	//編譯通過,輸出undefined
      
      let b: number 
      console.info(`${b!}`)	//編譯通過,輸出undefined
      

      情況二:變量沒有顯示賦值,但是明確聲明類型可以是undefined,其值默認也是undefined

      let a: string | undefined
      console.info(`${a}`)	//編譯通過,輸出undefined
      
      let b: number | undefined
      console.info(`${b}`)	//編譯通過,輸出undefined
      

      情況三:變量顯示賦值為undefined,其類型必須聲明為undefined類型

      let a: string  = undefined	//編譯錯誤
      let b: string | undefined = undefined
      console.info(`${a}`)	//編譯通過,輸出undefined
      

      注意:不管使用哪種形式定義變量,后續都可以按照指定類型更改變量的值

      let a: string
      let b: number | undefined
      let c: boolean | undefined = undefined
      console.info(`${a!}`)	//輸出undefined
      console.info(`${b}`)	//輸出undefined
      console.info(`${c}`)	//輸出undefined
      a = 'hello'
      b = 20
      c = true
      console.info(`${a}`)	//輸出hello
      console.info(`${b}`)	//輸出20
      console.info(`${c}`)	//輸出true
      

      2. 運算符

      運算符(Operator)是一種告訴編譯器執行特定數學或邏輯操作的符號。任何一門計算機語言運算操作基本上是一樣的。

      2.1 算術運算符

      所有算術運算符如下表所示

      以上運算符都比較簡單,下面重點講解一下++或者--運算符的運算規則。

      • 單獨使用:不斷++或者--放在操作數的前面還是后面,都表示對操作數自增1或者自減1
      let a = 3
      let b = 4
      a++
      console.log(`a的值為${a}`) // 4
      ++b;
      console.log(`b的值為${b}`) // 5
      
      • 混合使用:++和--可以放在變量前面或者后面,運算順序有所不同
      let x = 3
      let y = ++x	//x先+1,再把x的結果賦值給y
      console.log(`x的值為${x}`) //x的值為4
      console.log(`y的值為${y}`) //y的值為4
      
      let i = 3
      let j = i++	//先把i的值賦值給j,i再+1
      console.log(`i的值為${i}`) //x的值為4
      console.log(`j的值為${j}`) //y的值為3
      

      2.2 賦值運算符

      賦值運算就是把具體數據值賦值給變量,有下面的幾個運算符

      let a1 = 10	//把整數10賦值給var類型的變量a
      let b1 = 20
      b1+=10		//把b1+10之后,把結果再賦值給b,最終b=30
      console.log(`b1的值為${b1}`) //b1的值為30
      
      
      let c1 = 10
      c1 %= 4			//把c對4取余數,把結果再賦值給c,最終c=2
      console.log(`c1的值為${c1}`) //c1的值為2
      

      2.3 比較運算符

      用來對兩個數據做比較運算,最終結果只能是true或者false。需要注意的是==和=千萬不要搞混淆了

      • = 用于賦值
      • == 用于判斷兩個數據是否相等

      let a2 = 10
      let b2 = 10
      let c2 = a2==b2
      console.log(`c2的值為${c2}`) //c2的值為true
      

      2.4 邏輯運算符

      邏輯運算可以對多個條件進行連接,最終結果也是true或者false

      let a3=3;
      let b3=4;
      let c3=5;
      //&&(雙與): 左右兩邊都是true,結果才是true。
      console.log('邏輯運算',a3>b3 && b3<c3)	//false
      console.log('邏輯運算',a3<b3 && b3<c3)	//true
      
      //||(雙或): 左右兩邊有一個是true,結果就是true。
      console.log('邏輯運算',a3>b3 || b3>c3)	//false
      console.log('邏輯運算',a3<b3 || b3<c3)	//true
      
      //!(非): 對值取反
      console.log('邏輯運算',!(a3<b3))	//false
      

      3.流程語句

      3.1 if語句

      if語句用于需要根據邏輯條件執行不同語句的場景。當邏輯條件為真時,執行對應的一組語句,否則執行另一組語句(如果有的話)。
      if語句如下所示:

      if (condition1) {
        // 語句1
      } else if (condition2) {
        // 語句2
      } else {
        // else語句
      }
      

      條件表達式可以是任何類型。但是對于boolean以外的類型,會進行隱式類型轉換:

      let s1:string = "Hello"
      if (s1) {
        console.log(s1); // 打印“Hello”
      }
      
      
      let s2 = 'World';
      if (s2.length != 0) {
        console.log(s2); // 打印“World”
      }
      

      3.2 switch語句

      switch用于在幾個固定的值當中,選擇一個匹配的值,執行對應的代碼塊。

      switch (expression) {
        case label1: // 如果label1匹配,則執行
          // ...
          // 語句1
          // ...
          break; // 可省略
        case label2:
          //語句2
          break;
        case label3: // 如果label2或label3匹配,則執行
          // ...
          // 語句23
          // ...
          break; // 可省略
        default:
          // 默認語句
      }
      

      如果switch表達式的值等于某個label的值,則執行相應的語句。
      如果沒有任何一個label值與表達式值相匹配,并且switch具有default子句,那么程序會執行default子句對應的代碼塊。
      break語句(可選的)允許跳出switch語句并繼續執行switch語句之后的語句。
      如果沒有break語句,則執行switch中的下一個label對應的代碼塊。

      3.3 三元表達式

      條件表達式用于根據條件是true或者false,決定在兩個值中選擇一個值作為最終結果。

      數據類型 變量名 = 條件表達式 ? 值1 : 值2;
      
      • ● 執行流程:
        a. 判斷關系表達式的結果是true還是false
        b. 如果關系表達式是true,三元運算的結果就是表達式1
        c. 如果關系表達式是false,三元運算的結果就是表達式2
      //例1:求兩個變量的最大值
      let n = 30;
      let m = 20;
      //三元運算的結果 被max接收
      let max = n > m ? n : m
      console.log('三元運算', max) //30
      
      //例2:判斷成績是否及格
      let score = 90
      console.log('三元運算', score>=60?'及格':'不及格') //及格
      

      3.4 for語句

      for語句會被重復執行,直到循環退出語句值為false。for語句如下所示:

      for (初始化語句; 條件判斷; 變量更新) {
        循環體語句
      }
      

      示例:打印輸出1~10之間所有的整數

      for(let i=1; i<=10; i++){
        console.log(i)
      }
      

      示例:求0~10范圍內所有偶數的和

      let sum = 0;
      for (let i = 0; i <= 10; i+=2) {
         sum+=i
      }
      

      3.5 for-of語句

      使用for-of語句可遍歷數組或字符串。示例如下:

      for (forVar of expression) {
        statements
      }
      

      示例:

      let array = ['你好', '鴻蒙', 'HarmonyOS'];
      for (let s of array) {
          console.log(s); 	//'你好', '鴻蒙', 'HarmonyOS'
      }
      

      3.6 while語句

      只要condition為真值(轉換后為true的值),while語句就會執行statements語句。示例如下:

      while (condition) {
        statements
      }
      

      示例:

      let n = 0;
      let x = 0;
      while (n < 3) {
        x += n;
        n++;
      }
      console.log(n)
      

      3.7 do-while語句

      如果condition的值為真值(轉換后為true的值),那么statements語句會重復執行。示例如下:

      do {
        statements
      } while (condition)
      

      示例:

      let sum3 = 0
      let i = 0;
      do {
        sum3 += i
        i++
      } while (i <= 10)
      
      console.log(sum3) //55
      

      3.8 break語句

      使用break語句可以終止循環語句或switch。
      示例:

      for (let x = 1; x <=10; x++) {
        if (x % 2 == 0) {
          break
        }
        console.log(x)	//1
      }
      

      如果break語句后帶有標識符,則將控制流轉移到該標識符所包含的語句塊之外。
      示例:

      let x = 1
      label: while (true) {
        switch (x) {
          case 1:
            // statements
            break label; // 中斷while語句
        }
      }
      

      3.9 continue語句

      continue語句會停止當前循環迭代的執行,并繼續執行下一次循環。
      示例:

      for (let x = 1; x <=10; x++) {
        if (x % 2 == 0) {
          continue
        }
        console.log(x)	//1 3 5 7 9
      }
      

      3.10 流程控制練習

      //練習一:打印輸出1~100中既能被3整除,也能被5整除的數
      
      //練習二:打印輸出所有的水仙花數(是一個三位數,每一位數字的立方和等于該數本身)
      //比如:153 = 1*1*1 + 5*5*5 + 3*3*3
      
      //練習三:接上練習二,求水仙花數有多少個?,把個數打印
      
      //練習四:假設有一張足夠大的紙,請問折疊多少次可以到達珠穆朗瑪峰的高度
      
      //練習五:打印4行5列的*矩形圖案
      //*****
      //*****
      //*****
      //*****
      
      //練習六:打印4行5列的*直角三角形圖案
      //*
      //**
      //***
      //****
      //*****
      
      //練習七:打印9*9的99乘法表
      //1*1=1
      //1*2=2   2*2=4
      //1*3=3   2*3=6   ...
      //1*4=4   2*4=8   ...
      //1*5=5   2*5=10  ...
      //1*6=6   2*6=12  ...   
      //1*7=7   2*7=14  ...
      //1*8=9   2*8=16  ...
      //1*9=9   2*9=18  ...    ...       ...      9*9=81
      
      

      鴻蒙學習地址

      posted @ 2025-10-29 14:37  leon_teacher  閱讀(26)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 中文字幕av无码免费一区| 国产熟女老阿姨毛片看爽爽| 人人爽亚洲aⅴ人人爽av人人片| 亚洲色精品vr一区区三区| 国产精品麻豆成人av网| 海丰县| 91一区二区三区蜜桃臀| 滦南县| 粉嫩一区二区三区粉嫩视频| 久久精品一本到99热免费| аⅴ天堂中文在线网| 九九热在线免费视频精品| 日本精品网| 亚洲国产成人AⅤ片在线观看| 男女激情一区二区三区| 最新中文乱码字字幕在线| 中文字幕亚洲高清在线一区| 平邑县| 亚洲精品久荜中文字幕| 人妻少妇精品系列| 亚洲一区二区约美女探花| 国产精品亚洲综合色区丝瓜| 在线A级毛片无码免费真人| 欧美激欧美啪啪片| 日韩深夜福利视频在线观看| 一本色道国产在线观看二区| 绝顶丰满少妇av无码| 一区二区三区不卡国产| 欧美激情一区二区三区成人 | 亚洲AV永久无码嘿嘿嘿嘿| 女同在线观看亚洲国产精品| 国产精品福利自产拍久久| 亚洲一区二区三区18禁| 亚洲 小说区 图片区 都市| 免费看亚洲一区二区三区| 免费人成在线观看成人片| 久久精品免视看国产成人| 91人妻无码成人精品一区91| 欧洲亚洲国内老熟女超碰| 巨熟乳波霸若妻在线播放| 精品亚洲国产成人性色av|