仓颉编程语言小学堂:将golang项目迁移至仓颉前的准备

知识点储备

  1. 认识基础类型
  2. 认识函数
  3. 认识泛型
  4. 认识接口拓展

常用类型的对应关系

类型golang仓颉
整数int8Int8
整数int16Int16
整数int32Int32
整数int64Int64
无符整数uint8UInt8
无符整数uint16UInt16
无符整数uint32UInt32
无符整数uint64UInt64
浮点float32Float32
浮点float64Float64
字符串stringString
字符runeRune、Char
布尔值boolBool
数组[]interface{}Array
Slice[]interface{}ArrayList
Mapmap[interface{}]interface{}HashMap<K, V>

迁移前的准备

第一步:添加类型别名

type int8 = Int8
type int16 = Int16
type int32 = Int32
type int64 = Int64
type int = Int64
type uint8 = UInt8
type uint16 = UInt16
type uint32 = UInt32
type uint64 = UInt64
type float32 = Float32
type float64 = Float64
type bool = Bool
type rune = Rune
type string = String

第二步:为类型拓展最常用的API

len()函数为例

interface Len {
    prop size: int
}

extend String <: Len {}

extend Array<T> <: Len {}

extend ArrayList<T> <: Len {}

extend HashMap<K, V> <: Len {}

func len(t: Len): int64 {
    return t.size
}

最后:使用别名声明变量

main() {
    let i8: int8 = 1
    let f64: float64 = 1.0
    let bT: bool = true
    let map = HashMap<String, Any>()
    map["i8"] = i8
    map["f64"] = f64
    map["bT"] = bT
    println("len(map) = ${len(map)}") // 打印map的数据量
    // len(map) = 3
    let str: string = "你好,仓颉!"
    println("len(str) = ${len(str)}") // 打印字符串utf-8数组长度
    // len(str) = 18
    let chr: Array<rune> = str.toRuneArray()
    println("len(chr) = ${len(chr)}") // 打印字符串的字符数组长度
    // len(chr) = 6
    return 0
}
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Changeden

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值