LogoLogo
  • V by Example
  • en
    • examples
      • section_3
        • Functions
        • Methods
        • Arrays
        • Struct
      • section_1
        • Primitives
        • Keywords
        • Variables
        • Formatted Print
        • Strings
        • Comments
      • section_4
        • Files
        • JSON
        • Testing
        • Array Functions
      • section_2
        • Operators
        • Looping Constructs
        • If statement
        • Match
  • V por exemplos
    • Contribuindo
    • examples
      • section_1
        • Comentários
        • Primitivos
        • Palavras-chave
      • section_2
        • Operadores
  • V mit einem Beispiel
    • examples
      • section_3
        • Methods
        • Struct
        • Functions
        • Arrays
      • section_4
        • Testing
        • Array Functions
        • JSON
        • Files
      • section_2
        • Looping Constructs
        • If statement
        • Match
        • Operators
      • section_1
        • Primitive Datentypen
        • Schlüsselwörter
        • Formatted Print
        • Strings
        • Kommentare
        • Variables
    • CONTRIBUTING_de
  • V dengan Contoh
    • examples
      • section1
        • Variabel
  • 通过例子学V语言
    • 例子
      • section_3
        • 函数
        • 方法
        • 数组
        • 结构体
      • section_1
        • 基本类型
        • 关键字
        • 变量
        • print系列函数
        • 字符
        • 注释
      • section_4
        • 文件
        • JSON操作
        • 调试
        • 数组函数
      • section_2
        • 运算符
        • 循环结构
        • If表达式
        • 匹配
  • コード例で学ぶV言語
    • examples
      • section_3
        • 関数
        • メソッド
        • 配列
        • 構造体
      • section_1
        • プリミティブ型
        • キーワード
        • 変数
        • 書式付き出力
        • 文字列
        • コメント
      • section_4
        • ファイル操作
        • JSON操作
        • テスト
        • 配列の関数
      • section_2
        • 演算子
        • ループ
        • If文
        • マッチ
  • Changelog
  • Contributing
  • Documentation Style Guide
Powered by GitBook
On this page
  • String Interpolation
  • Konkatenation
  • Notizen

Was this helpful?

  1. V mit einem Beispiel
  2. examples
  3. section_1

Strings

In V können Strings mit dem Deklarationsoperator (:=) deklariert und initialisiert werden und sind, wie andere Variablen in V auch, standardmäßig immutable, d.h. unveränderlich. Man kann zur Definition einer Variable vom Typ string sowohl doppelte (""), als auch einfache ('') Anführungszeichen verwenden. Bei der Verwendung von vfmt werden doppelte Anführungszeichen in einzelne Anführungszeichen konvertiert, es sei denn der String enthält einzelne Anführungszeichen.

name := 'Bob'
println(name)       // Bob
println(name.len)   // 3

Um die Länge eines Strings zu ermitteln, kann man die .len Methode verwenden.

String Interpolation

Es ist ebenfalls möglich Variablen in einen String zu verpacken und diesen damit zu "erweitern" (engl. interpolation = Erweiterung). Um eine Variable in einen String zu interpolieren, verwendet man $ vor dem Variablennamen:

name:= 'Bob'
println('Hello $name!')     // Hello Bob

Um komplexere Ausdrücke zu interpolieren kann man nach dem Dollarzeichen noch geschweifte Klammern hinzufügen (${}), um so den Ausdruck darin zu interpolieren.

struct User {
    name string
    age int
}
bob := User {
    name: 'Bob'
    age: 17
}
println('Say Hello to a new User: ${bob.name}, ${bob.age}')             // Say Hello to new User: Bob, 17
println('${bob.name}s age is higher or equal to 18: ${bob.age >= 18}')  // 0 <=> number representation for false

Konkatenation

Strings können mittels des + Operators auch aneinander gehängt (konkateniert) werden. Da Strings ebenfalls standardmäßig unveränderlich sind, kann man nur Strings konkatenieren, die mit dem mut Schlüsselwort deklariert und initialisiert wurden.

mut text := 'Hello'
concatenated_text := text + ' World!'
println(text)                   // Hello
println(text + ' World!')       // Hello World!
println(concatenated_text)      // Hello World!

Das Anhängen von strings kann man entweder mit Konkatenation oder dem += Operator erreichen.

mut hello := 'Hello '
hello += 'from V!'      // appends 'from V!' to the string stored in hello.
println(hello)          // Hello from V!

In V werden die Daten eines Strings in UTF-8 codiert, der String wird dann als schreibgeschützes Byte-Array repräsentiert.

robert := 'Robert'
bert := robert[2..robert.len-1]                                 // bert
rob := robert[0..3]                                             // Rob
println('The persons of interest are: $robert, $bert, $rob')    // The persons of interest are: Robert, bert, Rob

Notizen

Unter Verwendung some_string[start..end] Syntax, muyss beachtet werden, dass end nicht mehr enthalten ist.

Alle Operatoren in V können nur verwendet werden, wenn auf beiden Seiten des Operators Variablen des selben Typs stehen. Der nachstehende Code kann nicht kompiliert werden, weil age vom Typ int ist.

age := 25
println('age = ' + age)

Daher muss die Variable zuerst mit Hilfe der .str() Funktion in einen String konvertiert werden, oder man verwendet String-Interpolation (empfohlener Ansatz).

age := 25
println('age = ' + age.str())   // age = 25
println('age = $age')           // age = 25

Es können weiterhin auch Character literals mit `` definiert werden. Zusätzlich gibt es die Möglichkeit sogenannte Raw-Strings mit einem vorangestellten r zu definieren, diese werden nicht "escaped".

hello := 'Hello\nWorld'
println(hello)                  // Hello
                                // World
raw_hello := r'Hello\nWorld'
println(raw_hello)              // Hello\nWorld
PreviousFormatted PrintNextKommentare

Last updated 5 years ago

Was this helpful?