在julia中,如何将表达式的输出分配给新变量?
愚蠢的例子,我想做一些在julia中,如何将表达式的输出分配给新变量?,julia,Julia,愚蠢的例子,我想做一些 X=println("hi"), 得到 X="hi". 我想这张海报想要访问你可以从println获得的漂亮的摘要格式。将其作为字符串访问的一种方法是使用print写入缓冲区,然后将其作为字符串读回。可能还有一个更简单的方法 using DataFrames data = DataFrame() data[:turtle] = ["Suzy", "Suzy", "Bob", "Batman", "Batman", "Bob", "Adam"] data[:mealT
X=println("hi"),
得到
X="hi".
我想这张海报想要访问你可以从println获得的漂亮的摘要格式。将其作为字符串访问的一种方法是使用print写入缓冲区,然后将其作为字符串读回。可能还有一个更简单的方法
using DataFrames
data = DataFrame()
data[:turtle] = ["Suzy", "Suzy", "Bob", "Batman", "Batman", "Bob", "Adam"]
data[:mealType] = ["bug", "worm", "worm", "bug", "worm", "worm", "stick"]
stream = IOBuffer()
println(data)
print(stream, data)
yourString = takebuf_string(stream)
返回
"7x2 DataFrame\n| Row | turtle | mealType |\n|-----|----------|----------|\n| 1 | \"Suzy\" | \"bug\" |\n| 2 | \"Suzy\" | \"worm\" |\n| 3 | \"Bob\" | \"worm\" |\n| 4 | \"Batman\" | \"bug\" |\n| 5 | \"Batman\" | \"worm\" |\n| 6 | \"Bob\" | \"worm\" |\n| 7 | \"Adam\" | \"stick\" |"
如果您在格式化字符串之后,可以使用
@sprintf
julia> x = @sprintf("%s", "hi")
"hi"
julia> x
"hi"
julia> x = @sprintf("%d/%d", 3, 4)
"3/4"
虽然这是一个宏,但要小心一般的解决方案是使用上面@ARM所描述的
IOBuffer
和takebuf_string
。如果足够捕获打印的输出
,则
s = string(args...)
给出将由print(args…
打印的字符串。而且
s = repr(X)
给出将由
showall(X)
打印的字符串。这两种方法都是在内部使用IOBuffer
和takebuf\u string
实现的。println的目的是将字符串打印到标准输出,而不是作为结果返回字符串。事实上,你的问题并不清楚。请提供更多的上下文。