81/ get-decoded-time返回 9 个数值来表示现在的时间:秒,分,时,日期,月,年,天,以及另外两个数值。
1 > (get-decoded-time)
15;;秒
48
8
25
3
2020;年
2
NIL
-8
82/ values函数返回多个数值。它一个不少地返回你作为数值所传入的实参:
1 > (values 'a nil (+ 2 4))
A
NIL
6
83/ 接收多个数值,我们使用multiple-value-bind:
1 > (multiple-value-bind (x y z) (values 1 2 3)
(list x y z))
(1 2 3)
1 > (multiple-value-bind (x y z) (values 1 2);;;如果变量的数量大于数值的数量,剩余的变量会是nil
(list x y z))
(1 2 NIL)
1 > (multiple-value-bind (x y z) (values 1 2 3 5 7);;;如果数值的数量大于变量的数量,多余的值会被舍弃
(list x y z))
(1 2 3)
1 > (multiple-value-bind (s m h) (get-decoded-time)
(format t "~A:~A:~A" h m s))
8:58:26
NIL
1 > (multiple-value-call #'+ (values 1 2 3));;;;将多值作为实参传给第二个函数
6
1 > (multiple-value-list (values 'a 'b 'c))
(A B C)