中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當(dāng)前位置: 首頁 > news >正文

廣州市品牌網(wǎng)站建設(shè)服務(wù)機(jī)構(gòu)電商網(wǎng)絡(luò)推廣怎么做

廣州市品牌網(wǎng)站建設(shè)服務(wù)機(jī)構(gòu),電商網(wǎng)絡(luò)推廣怎么做,余姚網(wǎng),網(wǎng)頁與網(wǎng)站的區(qū)別和關(guān)系一、泛型的定義 在軟件開發(fā)中,我們不僅要創(chuàng)建一致的定義良好的API,同時也要考慮可重用性。 組件不僅能支持當(dāng)前數(shù)據(jù)類型,同時也能支持未來的數(shù)據(jù)類型,這在創(chuàng)建大型系統(tǒng)時提供了十分靈活的功能。 在像 C# 和 Java 這樣的語言中&…

一、泛型的定義

在軟件開發(fā)中,我們不僅要創(chuàng)建一致的定義良好的API,同時也要考慮可重用性。

組件不僅能支持當(dāng)前數(shù)據(jù)類型,同時也能支持未來的數(shù)據(jù)類型,這在創(chuàng)建大型系統(tǒng)時提供了十分靈活的功能。

在像 C# 和 Java 這樣的語言中,可以使用泛型來創(chuàng)建可重用的組件,一個組件可以支持多種類型的數(shù)據(jù),這樣用戶就可以以自己的數(shù)據(jù)類型來使用組件。

通俗理解,泛型就是解決類、接口、方法的復(fù)用性,以及對不特定數(shù)據(jù)類型的支持(類型校驗(yàn))。

二、泛型的函數(shù)

// 只能返回 string類型的數(shù)據(jù)
function getData(value: string): string {return value
}// 同時返回 string類型 和 number類型,但是代碼冗余
function getData1(value: string): string {return value
}function getData2(value: number): number {return value
}// 可以同時返回 string類型 和 number類型,但是放棄了類型檢查
function getData3(value: any): any {return value
}

由上可看出,any類型 傳入的參數(shù)類型和返回的參數(shù)類型可以不一致。

想要實(shí)現(xiàn):傳入什么,返回什么。比如:傳入 number類型 必須返回 number類型,傳入 string類型 必須返回 string類型,就需要用的泛型。

泛型:可以支持不特定的數(shù)據(jù)類型,要求傳人的參數(shù)和返回的參數(shù)一致。

// 泛型定義,T表示泛型,具體什么類型是調(diào)用這個方法的時候決定的
function getData<T>(value: T): T {return value
}// getData<number>('string') // 錯誤的寫法
getData<number>(123) // 傳入的參數(shù)必須為number類型
getData<string>('str') // 傳入的參數(shù)必須為string類型// 泛型定義(了解): 指定調(diào)用時的參數(shù)類型,返回參數(shù)為任意類型
function getData1<T>(value: T): any {return '123456'
}getData1<number>(123)

三、泛型類

最小堆算法,需要同時支持返回?cái)?shù)字和字符串a(chǎn) - z兩種類型,通過類的泛型來實(shí)現(xiàn)。

只支持 number類型

class MinClass {public list: number[] = [] // 定義類中公共屬性listadd (num: number): void { // 向list中追加數(shù)據(jù)this.list.push(num)}min(): number { // 求list數(shù)組中最小的數(shù)let minNum: number = this.list[0]for (let i: number = 0; i < this.list.length; i++) {if (minNum > this.list[i]) {minNum = this.list[i]}}return minNum}
}let m = new MinClass()
m.add(3)
m.add(4)
m.add(10)
m.add(8)
console.log(m.min()) // 3

使用類的泛型實(shí)現(xiàn)

class MinClass<T> {public list: T[] = []add(value: T): void {this.list.push(value)}min(): T { // 求list數(shù)組中最小的數(shù)let minNum: T = this.list[0]for (let i: number = 0; i < this.list.length; i++) {if (minNum > this.list[i]) {minNum = this.list[i]}}return minNum}
}/* 實(shí)例化類,并且指定了類的T代表的類型是number */
let m1 = new MinClass<number>()
m1.add(5)
m1.add(4)
m1.add(10)
console.log(m1.min()) // 4/* 實(shí)例化類,并且指定了類的T代表的類型是string */
let m2 = new MinClass<string>()
m2.add('z')
m2.add('c')
m2.add('e')
console.log(m2.min()) // c

四、泛型接口

// 定義函數(shù)類型接口
interface ConfigFn {(value1: string, value2: string): string
}// 函數(shù)類型接口使用
const setData: ConfigFn = (value1: string, value2: string): string => {return value1 + value2
}console.log(setData('name', '張三')) // name張三

泛型接口:接口類型在調(diào)用方法時動態(tài)傳入

interface ConfigFn {<T>(value: T): T
}const getData: ConfigFn = <T>(value: T): T => {return value
}getData<string>('指定為string類型,傳入類型必須為string類型')
getData<string>(123) // 錯誤寫法
interface ConfigFn<T> {(value: T): T
}function getData<T> (value: T): T {return value
}const myGetDate: ConfigFn<string> = getDatamyGetDate('20')
http://www.risenshineclean.com/news/2374.html

相關(guān)文章:

  • 河南鄭州網(wǎng)站制作公司百度seo營銷
  • 中文網(wǎng)站建設(shè)中模板下載全網(wǎng)熱搜榜第一名
  • 網(wǎng)站案例seo網(wǎng)站優(yōu)化價(jià)格
  • 局域網(wǎng)創(chuàng)建網(wǎng)站路由器優(yōu)化大師
  • 重慶網(wǎng)站推廣外包企業(yè)競價(jià)推廣培訓(xùn)課程
  • 網(wǎng)站自己做服務(wù)器劃算嗎龍崗網(wǎng)站建設(shè)
  • 做網(wǎng)站開視頻網(wǎng)站關(guān)鍵詞排名優(yōu)化易下拉軟件
  • 遵義疫情最新數(shù)據(jù)消息百度小程序優(yōu)化排名
  • 網(wǎng)站開發(fā)和程序開發(fā)的卻別網(wǎng)絡(luò)營銷推廣8種方法
  • 網(wǎng)站備案主體撤銷2023年6月疫情情況
  • 網(wǎng)站設(shè)計(jì)過程南寧關(guān)鍵詞排名公司
  • 余姚網(wǎng)站建設(shè)62752762最佳磁力吧ciliba搜索引擎
  • 貴陽商城網(wǎng)站建設(shè)搜索引擎的工作原理是什么?
  • 廣州網(wǎng)絡(luò)營銷網(wǎng)站建設(shè)揚(yáng)中網(wǎng)站制作
  • 做盜版電影網(wǎng)站犯法嗎十大經(jīng)典事件營銷案例
  • 手機(jī)網(wǎng)站營銷的含義建設(shè)網(wǎng)站的網(wǎng)絡(luò)公司
  • 服務(wù)器平臺有哪些南昌seo網(wǎng)站排名
  • 建個企業(yè)網(wǎng)站一年多少錢3步打造seo推廣方案
  • 網(wǎng)站域名所有人東莞網(wǎng)站建設(shè)平臺
  • 網(wǎng)站制作關(guān)鍵百度愛采購服務(wù)商查詢
  • 自己制作網(wǎng)站找客源免費(fèi)用哪個軟件好
  • 北京網(wǎng)頁制作網(wǎng)站軟文代理平臺
  • 烏魯木齊做網(wǎng)站頭條號權(quán)重查詢
  • 如何做視頻網(wǎng)站技術(shù)網(wǎng)站開發(fā)費(fèi)用
  • 網(wǎng)站需求分析文檔網(wǎng)絡(luò)輿情監(jiān)測
  • vue 做網(wǎng)站微信公眾號小程序怎么做
  • 網(wǎng)站建設(shè)的資料的準(zhǔn)備長沙seo推廣公司
  • 網(wǎng)站外包建設(shè)谷歌搜索指數(shù)查詢
  • 東莞常平電鍍工業(yè)園東莞seo優(yōu)化公司
  • 羅湖附近公司做網(wǎng)站建設(shè)哪家好權(quán)重查詢