我正在尝试从字符串中取出三个数字
(parse-integer "12 3 6" :start 0 :junk-allowed t)
12 ;
2
现在这也返回2
了,这是可以解析的数字。所以我现在可以给
(parse-integer "12 3 6" :start 2 :junk-allowed t)
3 ;
4
但是我如何存储它返回2
的值。4
如果我setq
把它变成一个变量,只有12
and3
被存储?
我正在尝试从字符串中取出三个数字
(parse-integer "12 3 6" :start 0 :junk-allowed t)
12 ;
2
现在这也返回2
了,这是可以解析的数字。所以我现在可以给
(parse-integer "12 3 6" :start 2 :junk-allowed t)
3 ;
4
但是我如何存储它返回2
的值。4
如果我setq
把它变成一个变量,只有12
and3
被存储?
请在此处阅读“理论” 。
简而言之,您可以使用以下方式绑定多个值multiple-value-bind
:
(multiple-value-bind (val pos) (parse-integer "12 3 6" :start 0 :junk-allowed t)
(list val pos))
==> (12 2)
(setf (values val pos) (parse-integer "12 3 6" :start 0 :junk-allowed t))
val ==> 12
pos ==> 2
另请参阅VALUES 形式作为地点。
PS。在您的特定情况下,您可能只是这样做
(read-from-string (concatenate 'string
"("
"12 3 6"
")"))
并获取列表(12 3 6)
。虽然这不是最有效的方法(因为它分配了不必要的内存)。
另请参阅: