字符串

  1. name := 'Bob'
  2. println('Hello, $name!') // `$` is used for string interpolation
  3. println(name.len)
  4. bobby := name + 'by' // + is used to concatenate strings
  5. println(bobby) // ==> "Bobby"
  6. println(bobby.substr(1, 3)) // ==> "ob"
  7. // println(bobby[1:3]) // This syntax will most likely replace the substr() method

V语言中,字符串是一个只读的字节数组。字符串数据采用UTF8编码。

单引号和双引号都可以用户包含字符串面值(TODO:双引号目前还不支持)。为保持一致性,vfmt会将双引号字符串转换为单引号,除非该字符串包含单引号字符。

因为字符串是只读的,因此字符串的取子字符串的操作会比较高效:不需要复制,也不需要额外分配内存。

V语言中运算符两边值的类型必须是一样的。比如下面的代码,如果age是int类型的话,是不能正确编译的:

  1. println('age = ' + age)

我们需要将age转换为string类型:

  1. println('age = ' + age.str())

或者在字符串内部直接嵌入表达式(这是比较完美的方式):

  1. println('age = $age')