代码之家  ›  专栏  ›  技术社区  ›  Julia Learner anothershrubery

Julia的lpad函数的奇异行为与字符串插值

  •  0
  • Julia Learner anothershrubery  · 技术社区  · 7 年前

    下面的代码让我吃惊:

    julia> for person in 1:12
               println("person is $(lpad(2, person))")
           end
    person is 2
    person is  2
    person is   2
    person is    2
    person is     2
    person is      2
    person is       2
    person is        2
    person is         2
    person is          2
    person is           2
    person is            2
    

    直到我意识到我已经把论点加入了辩论中,它才显得完全神秘 lpad

    julia> for person in 1:12
               println("person is $(lpad(person, 2))")
            end
    person is  1
    person is  2
    person is  3
    person is  4
    person is  5
    person is  6
    person is  7
    person is  8
    person is  9
    person is 10
    person is 11
    person is 12
    

    不过,肯定有什么事情我不知道 lpad公司

    lpad公司 docs :

    lpad(s, n::Integer, p::Union{AbstractChar,AbstractString}=' ') -> String
    

    关于发生了什么有什么建议吗?

    1 回复  |  直到 7 年前
        1
  •  1
  •   Bill Antonello    7 年前

    在函数docs中,第二个参数确定 打印的第一个参数:

    lpad(s, n::Integer, p::Union{AbstractChar,AbstractString}=' ') -> String
    
    Stringify s and pad the resulting string on the left with p to make
    it n characters (code points) long. If s is already n characters long,
    an equal string is returned. Pad with spaces by default.
    

    所以循环计数器是person,这也是空格数

    推荐文章