接下来我们看一下Doom3Token类的其他几个接口方法的实现,具体代码如下:

  1. // 使用get关键字来定义属性,get定义只读属性,set定义只写属性
  2. public get type ( ) : ETokenType {
  3. return this . _type ;
  4. }
  5. //获取当前token的字符串值
  6. public getString ( ) : string {
  7. // _charArr数组中存放的都是单个字符序列,例如[ d , o , o , m , 3 ]
  8. // 我们可以使用数组的join方法将字符串联成字符串
  9. // 下面会使用join方法后,会返回doom3这个字符串
  10. return this . _charArr . join ( "" ) ;
  11. }
  12. // 获取当前token的浮点值
  13. public getFloat ( ) : number {
  14. return this . _val ;
  15. }
  16. // 获取当前token的int类型值
  17. public getInt ( ) : number {
  18. // 使用parserInt函数
  19. // 第一个参数是一个字符串类型的数字表示
  20. // 第二个参数是进制,我们一般用10进制
  21. return parseInt ( this . _val . toString ( ) , 10 ) ;
  22. }

  我们来看一个字符串比较的接口方法的实现,具体代码如下所示:

  1. public isString ( str : string ) : boolean {
  2. let count : number = this . _charArr . length ;
  3. // 字符串长度不相等,肯定不等
  4. if ( str . length !== count ) {
  5. return false ;
  6. }
  7. // 遍历每个字符
  8. for ( let i : number = 0 ; i < count ; i++ ) {
  9. // _charArr数组类型中每个char和输入的string类型中的每个char进行严格比较(!==操作符而不是!=)
  10. // 只要任意一个char不相等,意味着整个字符串都不相等
  11. if ( this . _charArr [ i ] !== str [ i ] ) {
  12. return false ;
  13. }
  14. }
  15. // 完全相等
  16. return true ;
  17. }