所以,我可以在Fortran语言既初始化字符串时'...'和“...”有什么区别?
CHARACTER(LEN=4)::string
string = "jklm"
和
CHARACTER(LEN=4)::string
string = 'jklm'
什么区别初始化字符串?
所以,我可以在Fortran语言既初始化字符串时'...'和“...”有什么区别?
CHARACTER(LEN=4)::string
string = "jklm"
和
CHARACTER(LEN=4)::string
string = 'jklm'
什么区别初始化字符串?
对fortan文档一瞥,大部分看起来都是一样的。尽管如果您打算在字符串中使用单引号,请使用双引号将其括起来。
// correct
"John's Stuff"
// wrong
'John's Stuff'
或者:
// correct
'She said "Hey!"'
// wrong
"She said "Hey!""
http://www.fortran90.org/src/rosetta.html#strings-and-formatting
编辑:顺便说一句,这同样适用于大多数编程语言。
也正确的'约翰的东西'和'约翰'的东西“,即加倍引号或撇号。 –
@HighPerformanceMark转义字符曾经给我做恶梦:) – Brian
在功能上,它们是相同的。尽管“”看起来更具可读性,但完全没有区别。
作为一个次要的(也许不重要的)一点,这里没有_initialization_,只是_assignment_。重要的概念是分隔字符常量。 – francescalus
@francescalus谢谢澄清。但是,尽管我尝试翻译,但我还是不太明白你的第二句话。你的意思是说...我只将字符串分配给一个已经存在的格式字符串常量(“jklm”)? –
''jklm''就是所谓的(人物)_常量__。这是一种由四个字母组成的价值,并始终具有这种价值的东西。这样的常量可以用于初始化,赋值或其他许多方面,引用/撇号的解释不会改变它。因此,告诉编译器“这里的内容形成一个字符串”和“这里的内容回到字符串外部”的分隔符('“或''')不是特定于初始化,而是说”常量“。 [希望这并没有让事情变得不那么明显...] – francescalus