请考虑以下内容:
ghci> :t 'a'
'a' :: Char
ghci> :t "a"
"a" :: [Char]
为什么它会对单引号和双引号有不同的处理方式,这是否重要?
请考虑以下内容:
ghci> :t 'a'
'a' :: Char
ghci> :t "a"
"a" :: [Char]
'c'
是一个单一字符(Char
),而"c"
是一个字符列表([Char]
)。ghci> let a = 1
ghci> let b = [1,2,3]
ghci> :t a
a :: Integer
ghci> :t b
b :: [Integer]
这很重要,因为单个元素和元素列表之间必须有区别。您可以对简单元素执行不同的操作,并对列表执行不同的操作。
Char
和 [Char]
不是同一件事。除此之外,我不确定你在问什么。
:info String
会打印出type String = [Char]
,这样你就可以明确地看到String
类型是如何定义的。 - bheklilr