qupa-project / uniview-lang

View once immutability enabling the safeties of immutable code, while enjoying near procedural performance
https://uniview.qupa.org
MIT License
2 stars 0 forks source link

String class #45

Closed AjaniBilby closed 3 years ago

AjaniBilby commented 3 years ago
import "print.uv";
import "string.uv";

fn main(): int {
    let a = String.New("Hello");
    let b = String.New(" World");
    String.Append(@a, $b);
    String.Say(@a);       // Hello World
    String.Append(@a, b); // Hello World World
    String.Say(@a);
    String.Delete(a);
    return 0;
}
AjaniBilby commented 3 years ago

New more advanced test case

import "print.uv";
import "string.uv";

fn main(): int {
    let a = String.New("Hello");
    let b = String.New(" World");
    String.Append(@a, $b);
    puts(@a);
    String.Append(@a, b);
    puts(@a);

    let s = cast#[u64](0);
    let e = cast#[u64](3);

    let t = String.Slice($a, s, e);
    puts(@a);
    puts(@t);

    String.Delete(t);
    t = String.Slice(@a, s, e);
    puts(@a);
    puts(@t);

    String.Delete(a);
    String.Delete(t);
    return 0;
}

Outputs:

Hello World
Hello World World
Hello World World
Hel
lo World World
Hel