بنقرة واحدة
cangjie-std-format
仓颉标准库 std.convert 格式化字串方法。当需要将数值类型格式化为指定格式的字符串(如指定宽度、对齐、精度、进制显示等),应使用此 Skill。涉及 Formattable 接口。
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
القائمة
仓颉标准库 std.convert 格式化字串方法。当需要将数值类型格式化为指定格式的字符串(如指定宽度、对齐、精度、进制显示等),应使用此 Skill。涉及 Formattable 接口。
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
استنادا إلى تصنيف SOC المهني
当需要构建鸿蒙应用项目时,使用此 Skill 执行构建流程。此 Skill 包含完整的构建命令、构建流程说明、构建失败处理流程。构建脚本会自动执行依赖安装、仓颉预编译、资源生成、编译、打包等步骤。
在鸿蒙应用(Cangjie)开发中,当需要使用 stdx 拓展库(如 crypto、encoding、net、log、actors 等),或在构建/链接阶段出现 stdx 相关错误时,使用此 Skill 获取/解压 stdx 包,并指导在 entry/cjpm.toml 中正确配置 bin-dependencies.path-option。
在进行仓颉工程或鸿蒙应用开发时的第一步,应该优先读取该SKILL,用来确定后续的开发步骤。
仓颉语言内置注解。当需要了解仓颉 SDK 提供的内置注解(@sourcePackage/@sourceFile/@sourceLine/@When/@FastNative/@Frozen/@Attribute/@Deprecated)的用途、语法和最优实践时,应使用此 Skill。
仓颉语言附录参考。当需要查阅仓颉语言的关键字列表、运算符优先级与结合性、运算符重载函数签名、运行时环境变量配置、包兼容性规则、TokenKind枚举类型时,应使用此 Skill。
仓颉标准库 Array 类型详细指南。当需要了解 Array 的构造、元素访问、切片、拼接、查找、排序、拷贝、反转、映射、扁平化等操作的完整 API 和用法时,应使用此 Skill。
| name | cangjie-std-format |
| description | 仓颉标准库 std.convert 格式化字串方法。当需要将数值类型格式化为指定格式的字符串(如指定宽度、对齐、精度、进制显示等),应使用此 Skill。涉及 Formattable 接口。 |
导入:
import std.convert.*
public interface Formattable {
func format(fmt: String): String
}
Int8, Int16, Int32, Int64, UInt8, UInt16, UInt32, UInt64, Float16, Float32, Float64, Rune
format_spec := [flags][width][.precision][specifier]
| 标志 | 适用类型 | 说明 |
|---|---|---|
- | Int/UInt/Float/Rune | 左对齐 |
+ | Int/UInt/Float | 正数显示 + 号 |
# | Int/UInt | 进制前缀(0b/0o/0x) |
0 | Int/UInt/Float | 空位补零 |
正整数,不足补空格(默认右对齐),不会截断。
0| 说明符 | 适用类型 | 说明 |
|---|---|---|
b/B | Int/UInt | 二进制 |
o/O | Int/UInt | 八进制 |
x/X | Int/UInt | 十六进制(小写/大写) |
e/E | Float | 科学计数法 |
g/G | Float | 自动选择十进制或科学计数法 |
import std.convert.*
main() {
var a: Int32 = 20
// 进制转换
println(a.format("b")) // "10100"(二进制)
println(a.format("o")) // "24"(八进制)
println(a.format("x")) // "14"(十六进制)
println(a.format("#X")) // "0X14"(带前缀大写十六进制)
// 宽度与对齐
println("\"${a.format("10")}\"") // " 20"(右对齐,宽度10)
println("\"${a.format("-10")}\"") // "20 "(左对齐)
// 正号与补零
println("\"${a.format("+10")}\"") // " +20"
println("\"${a.format("010")}\"") // "0000000020"
// 精度(整数前补零)
println("\"${a.format(".8")}\"") // "00000020"
}
import std.convert.*
main() {
var f: Float64 = 1234.5
// 默认 6 位小数
println(f.format("")) // "1234.500000"
// 指定精度
println(f.format(".2")) // "1234.50"
// 宽度 + 精度
println("\"${f.format("15.2")}\"") // " 1234.50"
// 科学计数法
println(f.format(".2e")) // "1.23e+03"
println(f.format("G")) // "1234.5"(G 自动选择精简表示)
// 补零
println("\"${f.format("012.2")}\"") // "0000001234.50"
}
import std.convert.*
main() {
var c: Rune = 'A'
println("\"${c.format("5")}\"") // " A"(右对齐)
println("\"${c.format("-5")}\"") // "A "(左对齐)
}
import std.convert.*
class Point <: Formattable {
var x: Float64
var y: Float64
init(x: Float64, y: Float64) {
this.x = x
this.y = y
}
public func format(fmt: String): String {
"(${x.format(fmt)}, ${y.format(fmt)})"
}
}
main() {
let p = Point(3.14159, 2.71828)
println(p.format(".2")) // "(3.14, 2.72)"
}
import std.convert.*
main() {
// 1. 十六进制地址显示
let addr: UInt64 = 48879
println("0x${addr.format("08X")}") // "0x0000BEEF"
// 2. 表格对齐输出
let items = [("Apple", 3), ("Banana", 12), ("Cherry", 150)]
for ((name, count) in items) {
let countStr = count.format("-6")
println("${name}: ${countStr}")
}
// 3. 浮点精度控制
let pi: Float64 = 3.14159265358979
println("pi ≈ ${pi.format(".4")}") // "pi ≈ 3.1416"
// 4. 二进制位查看
let flags: Int32 = 0xAB
println(flags.format("#010b")) // "0b10101011"
}