在 Julia 中将 int 转换为 char 的最佳方法是什么?

What's the best way to convert an int to a char in Julia?

我是 Julia 的新手,我想知道最好、方便、可读、最快的方法是什么。

示例:5 -> '5'

我目前最好的方法是:

c = string(i)[1]

c = char('0'+i)

您提出的第二个答案易于理解、正确(对于拉丁数字!)且快速。

digittochar(d) = Char('0' + d)

根据上游数据的预期清洁度,您可以添加一些检查以确保不会出现意外情况;毕竟

digittochar(6002) = អ

如果您想要一个 Julia function 来替换整数中的数字,这里有一种方法可以做到。确实没有错误检查,所以这对坚果输入来说很脆弱。

julia> function replace_int_digs{T <: Union(BigInt, Unsigned, Signed)}(x::T, locs::Vector{Int}, digs::Vector{Int})                                        
           x_str_array = split(string(x), "")                                                                                                             
           for (k, loc) in enumerate(locs)                                                                                                                
               x_str_array[loc] = string(digs[k])                                                                                                         
           end                                                                                                                                            
           return parseint(T, join(x_str_array))                                                                                                          
       end                                                                                                                                                
replace_int_digs (generic function with 1 method)                                                                                                         

julia> replace_int_digs(12345,[3],[9])                                                                                                                    
12945                                                                                                                                                     

julia> replace_int_digs(big(12345),[3],[9])                                                                                                               
12945                                                                                                                                                     

julia> replace_int_digs(big(12345),[3,1],[9,7])                                                                                                           
72945                                                                                                                                                     

julia> replace_int_digs(int32(12345),[3,1],[9,7])                                                                                                         
72945