HarmonyOS鴻蒙應用開發——ArkTS的“內置組件 + 樣式 + 循環和條件渲染”

一、內置組件是咩?

學過前端的都知道,一個組件就是由多個組件組成的,一個組件也可以是多個小組件組成的,組件就是一些什么導航欄、底部、按鈕......啥的,但是組件分為【自定義組件】跟【內置組件】

【自定義組件】就是我們想要一個什么樣的一塊元素,就用一堆內置組件通過我們自己設置屬性啥的,組合成一個【自定義組件】。

【內置組件】就是ArkTS原本就有的組件:圖片、按鈕、行元素、塊元素、視頻、音頻.....

二、內置組件的簡單寫法

組件名( )

有的組件需要往“( )”里帶參數,比如圖片組件要帶“路徑參數”;有的就不用,但是不用參數也必須帶上“( )”

然后如果要調整它的樣式,就在【組件名( )】后.屬性1( 值?).屬性2( 值 )......但是注意,有些屬性是所有組件通用的,有些是各個組件自己特有的

例子:

三、各個內置組件

1、圖片

圖片組件【Image( )】,只需要往( )里傳入圖片路徑即可用,但是有三種圖片路徑參數形式:

這里提示一下

我們的圖片一般就放在【resources】目錄下的【base.media】或【rawfile】

?$r() 一般對應【base.media】的圖片,當然也可以是別的目錄,寫的時候就是【app.別的目錄.圖片名】

?$rawfile() 則是對應【rawfile】的圖片,這個目錄就不能改了,要真的用到【rawfile】里有的圖片

示例:

第一種網絡圖片路徑例子

但其實只是在這個模擬運行器里可以顯示這個網絡地址的圖片,要是在真的模擬器或者手機上,就會顯示不出來,這是因為沒有申請網絡訪問權限

怎么申請網絡訪問權限?

官方文檔:文檔中心

找到在module.json5配置文件,在module下面復制這塊配置代碼(要了解為什么這么配置以后再說)

"requestPermissions": [{"name": "ohos.permission.INTERNET"}
],

第二種少用,就不演示了;

第三種本地路徑的例子:

然后我們會發現有時候圖片放大會有矩尺模糊、不好看,就需要用到圖片組件的一個【特有屬性】:.interpolation( )

當然如果我們記不住這么多屬性,可以查看鴻蒙的內置API文檔

點擊【Help】——>點擊【API Reference】就出來了API文檔

然后搜索組件名,點到【ArkTS】就能看到屬性詳情

看外邊框能看出一點差別

2、文字

文字組件【Text( )】

然后這里先提一下【resouces】這個目錄的文件結構

【base】可以理解為一個默認基礎陌路

下面的【en_US(英文)】【zh_CN(中文)】就是限定詞目錄,根據我們有什么限定詞目錄,將來翻譯一些文本文件時,就可以找到對應的限定詞目錄的json文件的對應的內容

然后【限定詞目錄】的string.json文件里有的變量,在【base】也必須要有

第一種靜態文字例子:

第二種根據本地源文件的變量顯示的文字例子:

那我們剛剛設置了MyName這個變量的英文版,怎么看英文版?看下圖

3、輸入框

輸入框組件【TextInput】

其中.type()屬性有以下屬性值

(注意,這些屬性只是輸入的【約束】,而非【校驗】,校驗需要我們自己手動)

名稱描述
InputType.Normal基本輸入模式。支持輸入數字、字母、下劃線、空格、特殊字符
InputType.Password密碼輸入模式。支持輸入數字、字母、下劃線、空格、特殊字符
InputType.Email郵箱地址輸入模式。支持數字,字母,下劃線,以及@字符
InputType.Number純數字輸入模式
InputType.PhoneNumber電話號碼輸入模式。支持輸入數字、+、-、*、#? ? ?長度不限

例子:

然后我們來做一個案例,用輸入框輸入的不同數字,當成一個變量,這個變量根據輸入的數字來動態改變,同時還作為圖片的寬度來控制圖片大小

那么我們首先第一步:掛載、聲明當前頁面的這個變量

第二步:在用的地方 this.變量 就行了

看到這里,老鐵們是不是覺得很熟悉,跟vue的data差不多

然后注意這里有個報錯:輸入的是一個string類型,不能讓number類型的這個變量接收。可是我明明輸入框的類型是數字啊

這是因為輸入框其實一個“ 文本框 ”,即使輸入的是數字,也只是字符串類型的數字,所以要把輸入的 “ 字符串數字 ”轉化成 “ 真數字 ” ,方法跟java的字符串轉數字差不多【parseInt(字符串)】

還有,數字轉字符串是?.toFix() ,括號里的參數值是保留的小數點位,0就是沒有小數

4、按鈕

按鈕組件【Button】

其中.type( ) 有一下幾種值

名稱描述
ButtonType.Capsule膠囊型按鈕(圓角默認為高度的一半)
ButtonType.Circle圓形按鈕
ButtonType.Normal普通按鈕(默認不帶圓角)

過于簡單,直接看代碼演示吧:

5、滑動條組件

這個玩意我們學HTML的時候就沒有了,ArkTS特有的滑動條組件【Slider()】

示例:

注意一點,粗細不是靠高度來調的

完整的

8、行容器跟列容器

這個更簡單,記住了【Column列容器】從上往下縱向排元素,【Row行容器】從左往右橫向排元素

用HTML理解:【Column】=【div】,【Row】=【block】

用uniapp理解:【Column】=【view】,【Row】=【text】

然后調整這兩個容器的布局通過下面這些屬性:

這一看,老鐵們熟悉得不能再熟悉了,對,就是CSS里面的【Flex彈性布局】啊!

就是有一點不同,主軸的屬性值要FlexAlign.排列值(center、SpaceBetween、SpaceEvenly......)

然后交叉軸Column容器HorizontaAlign.排列值,Row容器VerticalAlign.排列值

【Column容器的主軸方向排列參數】

【Column容器的交叉軸方向排列參數】

【Row容器的主軸方向排列參數】

【Row容器的交叉軸方向排列參數】

示例:

這里強調一點!!!!!!

想要這些排列值生效必須必須必須!!!把要排列的方向設置好寬或者高

比如我希望一個Row容器里的元素自左往右均勻排列,那么我首先必須設置主軸的長度,也就是寬度!!這樣才能根據寬度這個值來做參照,自動橫向排列;

我希望一個Column容器里的元素自上往下均勻排列,我就要先設置好高,這樣才能根據高度值做參照,自動縱向排列。

總結

四、樣式

這個ArkTS的樣式真是不想吐槽,對于我這種習慣了css、less、Vue......語法的人來說,真的麻煩得要死,大致上有些語法還是能用,但是還是有很多地方不一樣:

像素單位

相信各位注意到了,我前面那么多例子里,沒有出現過【px】、【vh】、【rpx】、【upx】這些常見單位

在ArkTS語法里,像素單位不需要寫了,“組件()”這里取而代之的單位有兩種形式:

? - 要么直接填數值

.height(100)

??- 要么填百分比,但是百分比形式必須要是字符串形式

.width('100%')

外邊距、內邊距

1、直接設置4個邊的外邊距的話,跟css一樣直接寫一個值就好

//內邊距
.padding(20)//外邊距
.margin(20)

2、如果你只要設置一邊的有邊距,在css的寫法是:margin-top: ...padding-left: ...、......

或者:margin:? 上值?左值 下值 右值padding: 上值?左值 下值 右值......

但是在ArkTS的寫法是往【.margin( )】傳入個對象參數,要哪個方向的邊距就在對象設置:{ 方向1:值 , 方向2:值 , ......?}

//左右有內邊距
.padding({ left: 10 , right: 10 })//上邊有外邊距
.margin({ top: 10 })

邊框

css的寫法賊雞兒簡單:

四邊都有邊框的話就是:border: 粗細? 類型(虛線、實現...)? 顏色

只要一邊有邊框就是:border-left: 粗細? 類型(虛線、實現...)? 顏色、border-top: 粗細? 類型(虛線、實現...)? 顏色 ......

但是ArkTS賊麻煩,記住了:

1、四邊都有邊框的話,顏色、粗細、類型啥的都有對應的屬性名:

.borderWidth(1)                    //粗細
.borderColor('#afefef')            //顏色
.borderStyle(BorderStyle.Solid)    //線類型

當然也可以通過傳對象的方式,把這些值全都放到一個對象傳給【border( )

.border({style: BorderStyle.Solid, width: 1,color: Color.Gray })

2、只要一個邊的話,按各個屬性名的方式寫的話,每個屬性里都傳一個對象參數,對象里是對應的方向

.borderWidth({ bottom: 1 })
.borderColor({ bottom: '#afefef' })
.borderStyle({ bottom: BorderStyle.Solid })

或者按第二種傳對象的方式,每個對象的值還是對象

.border({style: { bottom: BorderStyle.Solid }, width: { bottom: 1 },color: { bottom: Color.Gray }
})

3、然后圓角的話也是,四個角都是圓角的話就直接寫一個值

.borderRadius(20)

如果是只要單獨某幾個角,而不是四個角,還是傳對象值

.borderRadius({ topLeft: 20,topRight: 20,bottomLeft: 20,bottomRight: 20
})

然后圓角的值也可以作為對象值,直接傳入【border( )

屬性值

還有,注意一些屬性值,跟我們css理解的屬性值不一樣,比如:

顏色,單詞類型的不是:blueblackwhiteyellow......,而是Color.BlueColor.BlackColor.WhiteColor.Yellow......

邊框的線的類型不是: soliddotteddashed,而是BorderStyle.SolidBorderStyle.DottedBorderStyle.Dashed

主軸排列justifyContent也不是:centerstartendspaceBetweenspaceAroundspaceEvenly,而是FlexAlign.Center FlexAlign.StartFlexAlign.EndFlexAlign.SpaceBetweenFlexAlign.SpaceAroundFlexAlign.SpaceEvenly

這里只說常見的,還有很多我就不一一列舉了,以后用到的時候翻閱文檔就知道了

五、循環

也很簡單,就是Vue里面的v-for,只不過Vue是在<標簽>里用v-for綁定數組名,它這個直接用ForEach()循環包住整個要循環的元素,也沒問題,轉換一下思維就好理解了

然后呢這玩意其實就是v-key

做個簡單示例:

首先定義一個簡單類

然后定義一個成員都是這個“ Item ”對象的數組

接下來直接循環它

有點難看,我們再調整一下樣式,根據前面學的【Column】、【Row】,我們把 “ 圖片 ” 和 “ 文字 ” 放到一個【Row容器】里左右排列,然后把文字部分的 “ item.name手機名字 ” 和? “ item.price手機價格 ” 放到一個【Column容器】里上下排列,然后再加點背景顏色、邊框、外邊距啥的,就nice了

但是還有問題!其實我們的元素是在整個頁面居中排列的,現在是因為數組的成員多才撐到了頂

我們去掉幾個元素,就會發現它是居中排列的

可是咱們要的是從頁面頂部自上往下排列啊,那就要設置整個包住中間這些元素的Column容器,沿著主軸方向從開頭排列【FlexAlign.Start】

用List()跟ListItem組件讓頁面可滑動

還沒完......我們發現寫完這個案例,沒辦法拖動屏幕看下面擋住的內容

就要加一個【List( )】這個組件包住【循環】,【List()】這個組件就是把這一塊作為可滑動的區域。然后這個【List( )】里面必須必須必須包含有一個【ListItem( )】組件,這兩組件暫時了解這么多夠了

說白了【List( )】就是代替【Column容器】

完整樣例代碼:

//ArkTS的類的定義方法
class Item {//定義變量成員name: stringimgUrl: stringprice: numberdiscount: number//構造函數//換成java的寫法:public Item(String name,String imgUrl,Int price)//discount: number = 0的意思是,可以不傳這個參數,不傳的話就默認是0constructor(name: string, imgUrl: string, price: number, discount: number = 0) {this.name = namethis.imgUrl = imgUrlthis.price = pricethis.discount = discount}
}
@Entry
@Component
struct Goods{private List: Array<Item> = [new Item('華為','https://gd-hbimg.huaban.com/a6d955ef4df395c734766c2ac56581123756c9c738a84-Jy0kKX_fw480webp',6999,500),new Item('蘋果','https://gd-hbimg.huaban.com/6b9a7c00dc59e3d60aad6d714556414597ba8a1889ad8d-ECDC3P_fw480webp',7900),new Item('黃金手機','https://gd-hbimg.huaban.com/4569250f8d17c98d95a22914a2ca3a2e6edbb64b53233-J8uXwa_fw480webp',10000),new Item('小米','https://gd-hbimg.huaban.com/49626e33a18e743dd935d21f80c503917e14a4c612f5c-3wjWTv_fw480webp',2000),new Item('黑莓','https://gd-hbimg.huaban.com/cfa621505f7b96b05f66851639bf6c0b941f0e3e2c24e-b4Y08n_fw480webp',3450),new Item('諾基亞','https://gd-hbimg.huaban.com/dbce23ae86918485a72c3b568d2827e1fa77087cddca-UJdsZc_fw480webp',6000)]build() {Column({space: 20}) {Text('岑梓銘黑心手機店').width('100%').height(40).fontSize(34).fontWeight(500).margin({top: 20,left: 70})List({ space: 10 }){ForEach(this.List,(item:Item , index:Number) => {ListItem(){Row({space: 30}){Image(item.imgUrl).height(120).width(80).margin({left: 30})Column(){Text(item.name).fontSize(28)Text('$ '+item.price.toFixed(0)).fontSize(23).fontColor(Color.Red)}.height(130).justifyContent(FlexAlign.SpaceEvenly)}}.backgroundColor("#efefef").width('90%').borderRadius(20).borderWidth(1).borderColor('#afefef').borderStyle(BorderStyle.Solid).borderRadius(20).border({style: BorderStyle.Solid,width: 1,color: Color.Gray,radius: 20})})}.width('100%')//List按比例配高度,不寫它的情況下就默認是0,那就默認自己配多高height就是多高//如果是1,那么就按比例,上面的元素是0,那么下面所有的高度都屬于這個配了.layoutWeight(1)的元素.layoutWeight(1).alignListItem(ListItemAlign.Center)}.width('100%')//【第一】要想以Column的縱向排列,就必須設置高度,這樣才能根據高度來排列.height('100%')//【第二】然后現在就可以根據Column的主軸的縱向,通過FlexAlign.Start從上往下排列了.justifyContent(FlexAlign.Start).backgroundColor('#afafaf')}
}

六、條件渲染

vue里的條件渲染是在<標簽元素>里綁定 【v-if】、【v-else】、【v-show】

而ArkTS這里是直接在循環里寫if-else,比較符合普通的編程語言的條件判斷

那么我們在上面的案例增加一個條件渲染:當有折扣的時候,顯示折扣,沒有就照常按原樣顯示

修改后的完整代碼:

//ArkTS的類的定義方法
class Item {//定義變量成員name: stringimgUrl: stringprice: numberdiscount: number//構造函數//換成java的寫法:public Item(String name,String imgUrl,Int price)//discount: number = 0的意思是,可以不傳這個參數,不傳的話就默認是0constructor(name: string, imgUrl: string, price: number, discount: number = 0) {this.name = namethis.imgUrl = imgUrlthis.price = pricethis.discount = discount}
}
@Entry
@Component
struct Goods{private List: Array<Item> = [new Item('華為','https://gd-hbimg.huaban.com/a6d955ef4df395c734766c2ac56581123756c9c738a84-Jy0kKX_fw480webp',6999,500),new Item('蘋果','https://gd-hbimg.huaban.com/6b9a7c00dc59e3d60aad6d714556414597ba8a1889ad8d-ECDC3P_fw480webp',7900),new Item('黃金手機','https://gd-hbimg.huaban.com/4569250f8d17c98d95a22914a2ca3a2e6edbb64b53233-J8uXwa_fw480webp',10000),new Item('小米','https://gd-hbimg.huaban.com/49626e33a18e743dd935d21f80c503917e14a4c612f5c-3wjWTv_fw480webp',2000),new Item('黑莓','https://gd-hbimg.huaban.com/cfa621505f7b96b05f66851639bf6c0b941f0e3e2c24e-b4Y08n_fw480webp',3450),new Item('諾基亞','https://gd-hbimg.huaban.com/dbce23ae86918485a72c3b568d2827e1fa77087cddca-UJdsZc_fw480webp',6000)]build() {Column({space: 20}) {Text('岑梓銘黑心手機店').width('100%').height(40).fontSize(34).fontWeight(500).margin({top: 20,left: 70})List({ space: 10 }){ForEach(this.List,(item:Item , index:Number) => {ListItem(){Row({space: 30}){Image(item.imgUrl).height(120).width(80).margin({left: 30})Column(){//當有discount這個成員時,顯示折扣價這些if( item.discount ){Text(item.name).fontSize(28)Text('原價:$ ' + item.price.toFixed(0)).fontSize(19).fontColor(Color.Gray)//這是添加刪除橫線,TextDecorationType還有下劃線、去掉線.......decoration({type: TextDecorationType.LineThrough})Text('折扣價:$ ' + (item.price - item.discount).toFixed(0)).fontSize(23).fontColor(Color.Red)Text('補貼:$ ' + item.discount.toFixed(0)).fontSize(20)}else{Text(item.name).fontSize(28)Text('$ '+item.price.toFixed(0)).fontSize(23).fontColor(Color.Red)}}.height(130).justifyContent(FlexAlign.SpaceEvenly)}}.backgroundColor("#efefef").width('90%').borderRadius(20).borderWidth(1).borderColor('#afefef').borderStyle(BorderStyle.Solid).borderRadius(20).border({style: BorderStyle.Solid,width: 1,color: Color.Gray,radius: 20})})}.width('100%')//List按比例配高度,不寫它的情況下就默認是0,那就默認自己配多高height就是多高//如果是1,那么就按比例,上面的元素是0,那么下面所有的高度都屬于這個配了.layoutWeight(1)的元素.layoutWeight(1).alignListItem(ListItemAlign.Center)}.width('100%')//【第一】要想以Column的縱向排列,就必須設置高度,這樣才能根據高度來排列.height('100%')//【第二】然后現在就可以根據Column的主軸的縱向,通過FlexAlign.Start從上往下排列了.justifyContent(FlexAlign.Start).backgroundColor('#afafaf')}
}

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/15553.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/15553.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/15553.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Web開發核心

文章目錄 1.http協議簡介2.http協議特性3.http請求和響應協議4.最簡單的Web程序5.基于flask搭建web?站6.瀏覽器開發者?具&#xff08;重點&#xff09; 1.http協議簡介 HTTP協議是Hyper Text Transfer Protocol(超文本傳輸協議)的縮寫&#xff0c;是用于 萬維網(WWW:Norld W…

【狂神說Java】Redis筆記以及拓展

一、Redis 入門 Redis為什么單線程還這么快&#xff1f; 誤區1&#xff1a;高性能的服務器一定是多線程的&#xff1f; 誤區2&#xff1a;多線程&#xff08;CPU上下文會切換&#xff01;&#xff09;一定比單線程效率高&#xff01; 核心&#xff1a;Redis是將所有的數據放在內…

用于時間序列概率預測的蒙特卡洛模擬

大家好&#xff0c;蒙特卡洛模擬是一種廣泛應用于各個領域的計算技術&#xff0c;它通過從概率分布中隨機抽取大量樣本&#xff0c;并對結果進行統計分析&#xff0c;從而模擬復雜系統的行為。這種技術具有很強的適用性&#xff0c;在金融建模、工程設計、物理模擬、運籌優化以…

【C語言】C語言-設備管理系統(源碼+數據文件)【獨一無二】

&#x1f449;博__主&#x1f448;&#xff1a;米碼收割機 &#x1f449;技__能&#x1f448;&#xff1a;C/Python語言 &#x1f449;公眾號&#x1f448;&#xff1a;測試開發自動化【獲取源碼商業合作】 &#x1f449;榮__譽&#x1f448;&#xff1a;阿里云博客專家博主、5…

AI大模型:大數據+大算力+強算法

前言&#xff1a;好久不見&#xff0c;甚是想念&#xff0c;我是辣條&#xff0c;我又回來啦&#xff0c;兄弟們&#xff0c;一別兩年&#xff0c;還有多少老哥們在呢&#xff1f; 目錄 一年半沒更文我干啥去了&#xff1f; AI大模型火了 人工智能 大模型的理解 為什么學習…

ComfyUI完全入門:圖生圖局部重繪

大家好&#xff0c;我是每天分享AI應用的螢火君&#xff01; 這篇文章的主題和美女有關&#xff0c;不過并不是教大家生產美女視頻&#xff0c;而是講解 ComfyUI 的圖生圖局部重繪&#xff0c;其中將會以美女圖片為例&#xff0c;來展示局部重繪的強大威力。 先看看效果&…

2024年5月26日 十二生肖 今日運勢

小運播報&#xff1a;2024年5月26日&#xff0c;星期日&#xff0c;農歷四月十九 &#xff08;甲辰年己巳月庚寅日&#xff09;&#xff0c;法定節假日。 紅榜生肖&#xff1a;馬、豬、狗 需要注意&#xff1a;牛、蛇、猴 喜神方位&#xff1a;西北方 財神方位&#xff1a;…

java hashmap在項目中的使用

java hashmap在項目中的使用 1&#xff0c;緩存機制&#xff1a; 在需要頻繁訪問數據但又不想每次都從數據庫或遠程服務獲取的場景中&#xff0c;可以使用 HashMap 作為緩存。例如&#xff0c;在一個 Web 應用程序中&#xff0c;用戶信息可能只需要在登錄時從數據庫檢索一次&a…

解釋器和編譯器(程序語言基礎)

一、解釋器 解釋器則是一種逐行或逐段地解釋執行源代碼的工具。解釋器會直接讀取源代碼&#xff0c;并在運行時逐行或逐段地解釋執行代碼&#xff0c;不生成獨立的目標代碼文件。解釋器適用于一些動態語言&#xff0c;允許用戶在代碼執行過程中進行交互&#xff0c;更容易調試…

【linux_常用的指令】

筆記 1連接遠程主機2 兩臺主機間復制2.1 查看當前目錄2.2 普通復制 3 創建能運行sudo命令的用戶3.1 更改用戶admin的密碼3.2 切換到admin用戶&#xff0c;并且啟動一個新的shell3.3 更改文件或目錄的權限 4 切換目錄5 解.tar.gz格式的壓縮包6 運行.sh文件7 查看當前目錄的所有文…

泛型中K T V E ? Object等分別代表的含義

E – Element (在集合中使用&#xff0c;因為集合中存放的是元素) T – Type&#xff08;Java 類&#xff09; K – Key&#xff08;鍵&#xff09; V – Value&#xff08;值&#xff09; N – Number&#xff08;數值類型&#xff09; &#xff1f; – 表示不確定的java類型&…

一個月速刷leetcodeHOT100 day07 輪轉數組 除自身以外的乘積 找到字符串中所有字母異位詞

輪轉數組 給定一個整數數組 nums&#xff0c;將數組中的元素向右輪轉 k 個位置&#xff0c;其中 k 是非負數。 示例 1: 輸入: nums [1,2,3,4,5,6,7], k 3 輸出: [5,6,7,1,2,3,4] 解釋: 向右輪轉 1 步: [7,1,2,3,4,5,6] 向右輪轉 2 步: [6,7,1,2,3,4,5] 向右輪轉 3 步: […

系統思考—跳出癥狀看全局

結束了《系統思考—跳出癥狀看全局》的迭代課程后&#xff0c;我感觸頗深。通過一個深入的案例研討、互動討論和實戰演練&#xff0c;學員們不僅更好地理解了如何跳出癥狀看全局&#xff0c;還掌握了制定更具前瞻性和可持續性策略的方法。我們還探討了如何在實際工作中應用這些…

《python編程從入門到實踐》day38

# 昨日知識點回顧 定義、遷移模型Entry # 今日知識點學習 18.2.7 Django shell 每次修改模型后&#xff0c;看到重啟后的效果需要重啟shell&#xff0c;退出shell會話Windows系統按ctrlZ或者輸入exit() 18.3 創建頁面&#xff1a;學習筆記主頁 創建頁面三階段&#xf…

介紹一下Hugging Face,這個公司的背景是什么

Hugging Face是一家成立于2016年的人工智能公司&#xff0c;專注于為AI研究人員和開發者提供開源模型庫和工具。以下是關于Hugging Face公司的詳細背景介紹&#xff1a; 公司歷史與創始人&#xff1a; Hugging Face由Clment Delangue、Julien Chaumond和Thomas Wolf三位法國籍…

E0144 “const char *“ 類型的值不能用于初始化 “char *“ 類型的實體

解決方案&#xff1a; 在Visual Studio中&#xff0c;在項目上右鍵&#xff0c;屬性 >> C/C >> 語言 >> 符合模式&#xff0c;改為“否”。

AI大模型探索之路-基礎篇5:GLM-4解鎖國產大模型的全能智慧與創新應用

目錄 前言一、GLM4大模型總體概述二、GLM4和GPT4功能對比三、GLM4和GPT4性能對比1、基礎能力&#xff08;英文&#xff09;2、指令跟隨能力3、對齊能力4、長文本能力5、多模態-文生圖 四、GLM-4 ALL Tools1、文生圖2、代碼解釋器3、網頁瀏覽4、Function Call5、多工具自動調用 …

【學習筆記】關于建模時需要調整的變量

在進行回歸分析時&#xff0c;選擇調整變量&#xff08;也就是模型中的協變量&#xff09;需要謹慎考慮。調整的變量并不一定必須是混雜因素&#xff0c;但通常情況下&#xff0c;目的是為了控制那些可能扭曲主要自變量和因變量關系的混雜因素。除了混雜因素&#xff0c;還有幾…

C語言之指針進階(3),函數指針

目錄 前言&#xff1a; 一、函數指針變量的概念 二、函數指針變量的創建 三、函數指針變量的使用 四、兩段特殊代碼的理解 五、typedef 六、函數指針數組 總結&#xff1a; 前言&#xff1a; 本文主要講述C語言指針中的函數指針&#xff0c;包括函數指針變量的概念、創建…

【面試干貨】事務的并發問題(臟讀、不可重復讀、幻讀)與解決策略

【面試干貨】事務的并發問題&#xff08;臟讀、不可重復讀、幻讀&#xff09;與解決策略 一、臟讀&#xff08;Dirty Read&#xff09;二、不可重復讀&#xff08;Non-repeatable Read&#xff09;三、幻讀&#xff08;Phantom Read&#xff09;四、總結 &#x1f496;The Begi…