2020-03-25lisp学习-16

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)

你可能感兴趣的:(2020-03-25lisp学习-16)