当前位置: 首页 > news >正文

建立公司网站的好处域名检测工具

建立公司网站的好处,域名检测工具,长沙企业网站建设价格,网站推广的全套方式序言: 本文详细讲解了关于ArkTs语言中的泛型,其中包含泛型函数、泛型接口、泛型约束、泛型类及其中参数的使用方法,补充了一部分接口相关的知识,包括接口的继承和具体实现,也写到了一些边边角角的小知识,剩…

序言:

本文详细讲解了关于ArkTs语言中的泛型,其中包含泛型函数、泛型接口、泛型约束、泛型类及其中参数的使用方法,补充了一部分接口相关的知识,包括接口的继承和具体实现,也写到了一些边边角角的小知识,剩余参数和展开运算符,便于我们在实际代码编写中让自己的代码更加简洁,可读性更强。

笔者也是跟着B站黑马的课程一步步学习,学习的过程中添加部分自己的想法整理为笔记分享出来,如有代码错误或笔误,欢迎指正。

B站黑马的课程链接:鸿蒙课程介绍_哔哩哔哩_bilibili

往期笔记:

【01】纯血鸿蒙HarmonyOS NEXT星河版开发0基础学习笔记-ArkTs基础语法与界面开发基础

【02】纯血鸿蒙HarmonyOS NEXT星河版开发0基础学习笔记-界面进阶与布局排布(附QQ登陆、得物、京东登陆综合案例+代码)

【03】纯血鸿蒙HarmonyOS NEXT星河版开发0基础学习笔记-更多布局(弹性/层叠)方式与界面开发综合(附飞狗卡片+B站卡片案例+实战开发支付宝界面+代码)

【04】纯血鸿蒙HarmonyOS NEXT星河版开发0基础学习笔记-ArkTs进阶运算符+状态管理(附综合案例美团购物车)

【05】纯血鸿蒙HarmonyOS NEXT星河版开发0基础学习笔记-条件渲染+if/switch判断与for/while循环(附计数器、京东加购案例)
【06】纯血鸿蒙HarmonyOS NEXT星河版开发0基础学习笔记-综合案例·生肖抽奖卡具体实现(类似支付宝集五福)
【07】纯血鸿蒙HarmonyOS NEXT星河版开发0基础学习笔记-Swiper轮播组件与样式&结构重用  

【08】纯血鸿蒙HarmonyOS NEXT星河版开发0基础学习笔记-Scroll容器与Tabs组件

【09】纯血鸿蒙HarmonyOS NEXT星河版开发0基础学习笔记-Class类基础全解(属性、方法、继承复用、判断)

目录

一.剩余参数和展开运算符

1.剩余参数

2.展开运算符

二.接口补充

1.接口补充-接口继承

2.接口补充-接口实现

三.泛型

1.泛型函数

2.泛型约束

3.多个泛型参数

4.泛型接口

5.泛型类


一.剩余参数和展开运算符

1.剩余参数

1)简介:

剩余参数的语法,我们可以将函数或方法中一个不定数量的参数表示为一个数组。

2)语法及基础代码实例:

①语法:

//剩余参数只能写在最后一位
function 函数名(参数1,参数2,...剩余参数数组){//逻辑代码//之前的参数:挨个获取即可//剩余参数:以数组的形式获取
}

②基础代码实例:

function sum(numA:number,numB:number,...theArgs:number[]){let total=numA+numB;for(const arg of theArgs){total+=arg;}return total;
}
console.log(sum(1,2,3).toString())
console.log(sum(1,2,3,4).toString())

2.展开运算符

1)简介:

处于程序稳定性,以及运行性能考虑,在ArkTs中 ...(展开运算符)只能用在数组上

2)语法及基础代码实例:

const numArr1:number[]=[1,2,3,4]
const numArr2:number[]=[5,6,7]
//合并到一起
const totalArr:number[]=[...numArr1,...numArr2]
console.log(totalArr.toString())

二.接口补充

1.接口补充-接口继承

1)简介:

接口继承使用的关键字是extends。

2)语法及基础代码实例:

①语法

interface 接口1{属性1:类型
}
interface 接口2 extends 接口1{属性2:类型
}

②基础代码实例

interface IAnimal{name:string
}
interface ICat extends IAnimal{color:string
}
const cat:ICat ={name:'布偶猫',color:'白色'
}

2.接口补充-接口实现

1)简介:

可以通过接口结合implements来限制类必须要有某些属性和方法

2)语法及基础代码实例:

①语法

interface 接口{属性:类型方法:方法类型
}class 类 implements 接口{//必须实现 接口中定义的属性、方法,//否则会报错
}

②基础代码实例

interface IDog{name:stringbark:()=>void
}class Dog implements IDog{name:stringfood:stringconstructor(name:string,food:string) {this.name=namethis.food=food}bark(){console.log(`${this.name}一边吃${this.food}一边大叫`)}
}let d1:Dog=new Dog('河马小狗','达犀牛')
d1.bark()

三.泛型

简介:

泛型可以让【函数】等,与多种【不同的类型】一起工作,灵活可复用

通俗一点说就是:类型是可变

1.泛型函数

1)语法

//原函数
function fn1(temp:string):string{return temp
}
function fn2(temp:number):number{return temp
}
function fn3(temp:boolean):boolean{return temp
}
//使用泛型后
function fn<Type>(temp:Type):Type{return temp
}fn<string>('1,2,3')
fn<number>(1)

tips:

ArkTs会根据默认传参,进行类型腿短,动态的配置Type类型参数的值。

但是大家能写全尽量写全,这样会提高代码的可读性。

fn(true)
fn([1,2,3,4,5])

2)基础代码实例1

①练习需求

定义函数,参数是数组(存的类型不定),返回数组长度

②具体代码

function getLength<T>(arr:T[]):number{return arr.length
}
console.log('',getLength<number>([1,2,3,4,5]))
console.log('',getLength<string>(['河马','荷花','大炮']))

3)基础代码实例2

①练习需求

定义函数,参数是数组(存的类型不定),返回数组的最后一项。

②具体代码

function getLate<T>(arr:T[]):T{return arr[arr.length-1]
}
console.log('',getLate([1,2,3,4,5,6,7]))

2.泛型约束

1)简介:

之前的类型参数,可以传递任何类型,没有限制。

如果希望有限制→泛型约束

interface 接口{属性:类型
}
function 函数<Type extends 接口>(){}

2)基础代码实例

interface ILength{length:number
}
function fn<T extends ILength>(param:T){console.log('',param.length)
}
fn<string>('hahahaha')
fn<boolean>(true) //会报错

interface ILength{length:number
}
function fn<T extends ILength>(param:T){console.log('',param.length)
}
fn<string>('hahahaha')
/*fn<boolean>(true)*/
class Desk{length=2
}
let d1=new Desk()
fn<Desk>(d1)

3.多个泛型参数

1)简介:

日常开发的时候,如果有需要,可以添加多个 类型变量

2)基础代码实例

function  funcA<T,T2>(param1:T,param2:T2){console.log('参数1',param1)console.log('参数2',param2)
}
funcA<string,number>('河马',888)
funcA<string[],boolean[]>(['荷花'],[false])

4.泛型接口

1)简介:

定义接口的时候,结合泛型定义,就是泛型接口。

interface 接口<Type>{//内部使用Type
}

2)基础代码实例

interface IdFunc<Type>{//约定有两个方法(id类型不定,可能是string可能是number)//1.传入id值,就返回id值。//2.返回一个ids数组id:(value:Type)=>Typeids:()=>Type[]
}let obj1:IdFunc<number>={id(value){return value},ids(){return[1,2,3,4,5]}
}let obj2:IdFunc<string>={id(value){return value},ids(){return['001','002','003']}
}

5.泛型类

1)简介:

定义类的时候,结合泛型定义,就是泛型类。

class 类名<Type>{//内部可以使用Type
}

2)基础代码实例

//泛型类:定义类的时候,配合泛型一起定义
class Person<T>{id:Tconstructor(id:T) {this.id=id}getId(){return this.id}
}
let p1:Person<string> = new Person('河马')
let p2:Person<number> = new Person(123456789)
console.log(p1.getId())
console.log(p2.getId().toString())

感谢观看。

http://www.hrbkazy.com/news/33711.html

相关文章:

  • 在招聘网站做电话销售怎么样优秀网站
  • 如何制作手机版网站企业网络营销推广方法
  • wordpress 说说碎语东莞百度seo哪里强
  • 新洲建设投标网站哪里有专业的培训机构
  • 企业做网站算办公费用吗seo网络排名优化
  • wordpress音乐musik优化教程网下载
  • 做签证宾馆订单用啥网站百度关键词排名技术
  • 中国人民保险公司官方网站下载百度推广app
  • 局域网做网站 内网穿透深圳十大网络推广公司排名
  • 做网站用采集dw软件怎么制作网页
  • 做网站免费的域名成都关键词seo推广电话
  • 桂林北站到象鼻山景区怎么坐车外贸营销型网站
  • 网站建设详细工作汇报网站链接分析工具
  • 上海工程建设执业资格注册中心网站贴吧推广400一个月
  • 手机网站一般宽度做多大的武汉seo首页
  • 富阳网站建设公司seo搜索引擎优化求职简历
  • 山西网站开发建设百度网首页官网
  • 广州 做网站武汉关键词排名提升
  • 哪个小说网站版权做的好活动策划公司
  • WordPress不同尺寸图片北京网络推广公司wyhseo
  • 网站分析如何在其他平台做推广
  • 用vs2010做免费网站模板seo推广怎么学
  • 国外网站建设视频教学浙江百度推广
  • 花钱做网站注意些什么南宁市优化网站公司
  • 广州哪里做网站南京百度关键字优化价格
  • 合肥网站优化价格营销型网站建设论文
  • 外包公司好不好百度seo还有前景吗
  • 创建网站快捷方式到桌面百度seo提高排名费用
  • 广州搬家公司云速seo百度点击
  • 设计相关网站重庆seo推广外包