个人总结cangjie仓颉程序设计-(一)

发布于:2024-11-03 ⋅ 阅读:(199) ⋅ 点赞:(0)


本专栏还在持续更新Cangjie仓颉程序设计-个人总结
这是双子专栏仓颉编程cangjie刷题录

基本了解

注释

注释使用方式同c++、Java

  • 单行: //
  • 多行:/* */

常用数据类型

  • Rune其他语言中的char,但是 “不是ASCII码而是Unicode,UTF-8”
  • String: String中的每个元素取出来都是整型该字符的Unicode
  • =“ 指两种类型相同,互为别名。
Rune    // 其他语言中的char,但是 “不是ASCII码,而是Unicode,UTF-8”
Int8 = Byte
Int32
Int64 = Int
UInt32
Uint64 = UInt
String  // 同理,String中的每个元素取出来都是整型!该字符的Unicode!
Bool
Float64

常用包

  • std.console.* :读输入数据
  • std.collection.* :容器
  • std.convert.* :格式化输出
  • std.random.* :类型转换
import std.core.*	// 默认导入,无需显式导入
import std.console.*
import std.collection.*
import std.convert.*
import std.random.*

基本写法

变量定义&初始化

如果不使用默认数据类型,则需要写明数据类型。

var a:UInt32 = 97		
var b:Rune = 'b'
var str:String = "520"
var str = "520"	// 也是可以的
var arr:Array<Int> = [1, 2, 3]
var flag = false

数组定义&初始化

注意:使用item初始化二维数组时,赋值的是引用。
所以二维数组初始化一定要用这种写法:var f = Array<Array> (n + 1) {i => [0, 0]}

// 一维
var arr = Array<Int>(4) {_ => 0}
var arr1 = Array<Int>(4, {_ => 0})
var arr2 = Array<Int>(4, item: 0)

// 二维
var f = Array<Array<Int>> (n + 1, {i => [0, 0]})  // 这样就是每个数组单独赋值,这么写就对了
var f = Array<Array<Int>> (n + 1) {i => [0, 0]}	// 这样就是每个数组单独赋值,这么写就对了
var f = Array<Array<Int>> (n + 1, item: [0, 0]} // 这种方式修改一个元素全部都会修改,因为所有元素都是一个对象的引用

默认数据类型

  • 默认整型为: Int64
  • 默认浮点数为:Float64
  • 默认字符、字符串为:String
var one = 1   // Int64
var two = '2' // String
var three = 3.0 // Float64

字符串-数字转换

是std.convert.*中的函数。

import std.convert.*

var str:String = "520"
var str_value:Int = Int64.parse(str)  // 520

字符-数字转换

字符Rune只能转为UInt32
整型数字都可以转为Rune
单个字节内,ASCII与Unicode等值

var a:UInt32 = 97		
var b:Rune = 'b'
var str:String = "520"

b = Rune(a)		// 'a'
a = UInt32(b)	// '98'

var unicode_value_of_5 = str[0]	// 53, String中的每个元素取出来都是整型!该字符的Unicode!
var c:Rune = Rune(str[0])  // '5'

网站公告

今日签到

点亮在社区的每一天
去签到