You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Julia新手求助:如何获取用户输入并存入数组?代码输出异常

Julia读取用户输入存入数组并打印的问题解决

你的代码存在几个关键问题,导致无法读取输入且最终输出nothing,以下是问题分析和修正方案:

问题点

  • 函数调用错误:readline是函数,必须加括号readline()才会执行读取输入操作,否则只是引用函数对象,不会触发输入读取。
  • 未转换输入类型:用户输入的内容是字符串格式,需要用parse转成数字类型(整数Int或浮点数Float64),否则数组会存储字符串而非数字。
  • 函数无返回值:ask()函数最后没有返回数组lst,Julia函数默认返回最后一行表达式的结果,你的函数最后一行是i += 1,循环结束后函数没有返回数组,因此调用ask()会返回nothing。
  • 数组初始化优化:建议指定数组类型(比如Int[]),避免创建Any类型的数组,提升性能和类型安全性。

修正后的代码

function ask()
    lst = Int[]  # 指定存储整数的数组,若需存浮点数可改为Float64[]
    println("pick 5 numbers to add to a list")
    for _ in 1:5  # 用for循环替代while计数,更符合Julia惯用写法
        input = readline()  # 执行readline函数读取用户输入
        num = parse(Int, input)  # 将输入字符串转为整数
        push!(lst, num)  # 将数字添加到数组,无需赋值给变量
    end
    return lst  # 返回存储好的数组
end

result = ask()
println("你输入的数组是:", result)

补充说明

  • 如果需要支持浮点数输入,只需把代码中的Int替换为Float64即可。
  • 使用for _ in 1:5替代while循环,无需手动维护计数器i,代码更简洁易读。

内容的提问来源于stack exchange,提问作者D_D

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.11 23:51:16