接下来我们看一下Doom3Token类的其他几个接口方法的实现,具体代码如下:
// 使用get关键字来定义属性,get定义只读属性,set定义只写属性
public get type ( ) : ETokenType {
return this . _type ;
}
//获取当前token的字符串值
public getString ( ) : string {
// _charArr数组中存放的都是单个字符序列,例如[ d , o , o , m , 3 ]
// 我们可以使用数组的join方法将字符串联成字符串
// 下面会使用join方法后,会返回doom3这个字符串
return this . _charArr . join ( "" ) ;
}
// 获取当前token的浮点值
public getFloat ( ) : number {
return this . _val ;
}
// 获取当前token的int类型值
public getInt ( ) : number {
// 使用parserInt函数
// 第一个参数是一个字符串类型的数字表示
// 第二个参数是进制,我们一般用10进制
return parseInt ( this . _val . toString ( ) , 10 ) ;
}
我们来看一个字符串比较的接口方法的实现,具体代码如下所示:
public isString ( str : string ) : boolean {
let count : number = this . _charArr . length ;
// 字符串长度不相等,肯定不等
if ( str . length !== count ) {
return false ;
}
// 遍历每个字符
for ( let i : number = 0 ; i < count ; i++ ) {
// _charArr数组类型中每个char和输入的string类型中的每个char进行严格比较(!==操作符而不是!=)
// 只要任意一个char不相等,意味着整个字符串都不相等
if ( this . _charArr [ i ] !== str [ i ] ) {
return false ;
}
}
// 完全相等
return true ;
}