我有一堆整數ns其中0 < = n < = 9對於所有n in。我需要將它們保存爲字符或字符串。我用@time比較內存使用情況,我得到這個:如何將整數轉換爲字符
julia> @time a = "a"
0.000010 seconds (84 allocations: 6.436 KiB)
"a"
julia> @time a = 'a'
0.000004 seconds (4 allocations: 160 bytes)
'a': ASCII/Unicode U+0061 (category Ll: Letter, lowercase)
- 爲什麼如此巨大的差異?
我選擇將整數轉換爲字符,但我不明白什麼是正確的方法來做到這一點。當我在REPL中做Char(1)
時,我得到'\x01': ASCII/Unicode U+0001 (category Cc: Other, control)
,如果我嘗試打印它,我會得到這個符號:。
相反,當我在REPL中做'1'
時,我得到'1': ASCII/Unicode U+0031 (category Nd: Number, decimal digit)
,如果我打印它,我得到1
。這是我想要的行爲。
- 如何實現它?
我想到了創建字典分配給每個整數它對應的字符,但我敢肯定這是不是要走的路...
使用'CHAR(N + '0')'。這將增加'0'數字的ASCII偏移量並修復其餘的數字。 –
用@時間計時有點麻煩,特別是對於非常小的操作。嘗試使用來自BenchmarkTools.jl的'@ btime'或'@ benchmark',使用映射的 –