join()函數

join() 函數是將兩個列表連接合併成一個列表。

>> join(10px 20px, 30px 40px)
(10px 20px 30px 40px)
>> join((blue,red),(#abc,#def))
(#0000ff, #ff0000, #aabbcc, #ddeeff)
>> join((blue,red),(#abc #def))
(#0000ff, #ff0000, #aabbcc, #ddeeff)

不過join()只能將兩個列表連接成一個列表,如果直接連接兩個以上的列表將會報錯:

>> join((blue red),(#abc, #def),(#dee #eff))
SyntaxError: $separator: (#ddeeee #eeffff) is not a string for `join'

但很多時候不只碰到兩個列表連接成一個列表,這個時候就需要將多個join() 函數合併在一起使用:

>> join((blue red), join((#abc #def),(#dee #eff)))
(#0000ff #ff0000 #aabbcc #ddeeff #ddeeee #eeffff)

在join() 函數中還有一個很特別的參數$separator,這個參數主要是用來給列表函數連接列表值是,使用的分隔符號,默認值為auto。

join() 函數中$separator 除了默認值auto 之外,還有comma 和space 兩個值,其中comma 值指定列表中的列表項值之間使用逗號(,)分隔,space 值指定列表中的列表項值之間使用空格( )分隔。

在join() 函數中除非明確指定了$separator值,否則將會有多種情形發生:

如果列表中的第一個列表中每個值之間使用的是逗號(,),那麼join() 函數合併的列表中每個列表項之間使用逗號,分隔:

>> join((blue, red, #eff),(green orange))
(#0000ff, #ff0000, #eeffff, #008000, #ffa500)

但當第一個列表中只有一個列表項,那麼join() 函數合併的列表項目中每個列表項目這間使用的分隔符號會根據第二個列表項中使用的,如果第二列表項中使用是,分隔,則使用逗號分隔;如果第二列項之間使用的空格符,則使用空格分隔:

>> join(blue,(green, orange))
(#0000ff, #008000, #ffa500)
>> join(blue,(green orange))
(#0000ff #008000 #ffa500)

如果列表中的第一個列表中每個值之間使用的是空格,那麼join() 函數合併的列表中每個列表項之間使用空格分隔:

>> join((blue green),(red,orange))
(#0000ff #008000 #ff0000 #ffa500)
>> join((blue green),(red orange))
(#0000ff #008000 #ff0000 #ffa500)

如果當兩個列表中的列表項小於1時,將會以空格分隔:

>> join(blue,red)
(#0000ff #ff0000)

如此一來,會有多種情形發生,造成使用混亂的情形,如果你無法記得,什麼時候會是用逗號分隔合併的列表項,什麼時候是使用空格分隔合併的列表項,在些建議大家使用join() 函數合併列表項的時候就明確指定$separator 參數,用來指定合併的列表中使用什麼方式來分隔列表項:

>> join(blue,red,comma)
(#0000ff, #ff0000)
>> join(blue,red,space)
(#0000ff #ff0000)
>> join((blue green),(red,orange),comma)
(#0000ff, #008000, #ff0000, #ffa500)
>> join((blue green),(red,orange),space)
(#0000ff #008000 #ff0000 #ffa500)
>> join((blue, green),(red,orange),comma)
(#0000ff, #008000, #ff0000, #ffa500)
>> join((blue, green),(red,orange),space)
(#0000ff #008000 #ff0000 #ffa500)
>> join(blue,(red,orange),comma)
(#0000ff, #ff0000, #ffa500)
>> join(blue,(red,orange),space)
(#0000ff #ff0000 #ffa500)
>> join(blue,(red orange),comma)
(#0000ff, #ff0000, #ffa500)
>> join(blue,(red orange),space)
(#0000ff #ff0000 #ffa500)

results matching ""

    No results matching ""