2019-11-08 03:19:27 +04:00
|
|
|
---
|
|
|
|
id: strings
|
|
|
|
title: Strings
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Strings are defined using the built-in `string` type like this:
|
|
|
|
|
|
|
|
<!--DOCUSAURUS_CODE_TABS-->
|
|
|
|
<!--Pascaligo-->
|
|
|
|
```
|
|
|
|
const a: string = "Hello Alice";
|
|
|
|
```
|
2019-12-12 17:35:07 +04:00
|
|
|
<!--CameLIGO-->
|
2019-11-08 03:19:27 +04:00
|
|
|
```
|
|
|
|
let a: string = "Hello Alice"
|
|
|
|
```
|
2019-12-11 13:34:08 +04:00
|
|
|
<!--ReasonLIGO-->
|
2019-12-11 17:47:52 +04:00
|
|
|
```reasonligo
|
2019-12-11 13:34:08 +04:00
|
|
|
let a: string = "Hello Alice";
|
|
|
|
```
|
2019-11-08 03:19:27 +04:00
|
|
|
<!--END_DOCUSAURUS_CODE_TABS-->
|
|
|
|
|
|
|
|
|
|
|
|
## Concatenating strings
|
|
|
|
|
|
|
|
<!--DOCUSAURUS_CODE_TABS-->
|
|
|
|
<!--Pascaligo-->
|
2019-12-11 13:34:08 +04:00
|
|
|
Strings can be concatenated using the `^` operator.
|
|
|
|
|
2019-11-08 03:19:27 +04:00
|
|
|
```pascaligo
|
|
|
|
const name: string = "Alice";
|
|
|
|
const greeting: string = "Hello";
|
|
|
|
// Hello Alice
|
|
|
|
const full_greeting: string = greeting ^ " " ^ name;
|
|
|
|
// Hello Alice! (alternatively)
|
|
|
|
const full_greeting_exclamation: string = string_concat(full_greeting, "!");
|
|
|
|
```
|
2019-12-12 17:35:07 +04:00
|
|
|
<!--CameLIGO-->
|
2019-12-11 13:34:08 +04:00
|
|
|
Strings can be concatenated using the `^` operator.
|
|
|
|
|
2019-11-08 03:19:27 +04:00
|
|
|
```cameligo
|
|
|
|
let name: string = "Alice"
|
|
|
|
let greeting: string = "Hello"
|
|
|
|
let full_greeting: string = greeting ^ " " ^ name
|
|
|
|
```
|
2019-12-11 13:34:08 +04:00
|
|
|
<!--ReasonLIGO-->
|
|
|
|
Strings can be concatenated using the `++` operator.
|
|
|
|
|
2019-12-10 17:47:31 +04:00
|
|
|
```reasonligo
|
|
|
|
let name: string = "Alice";
|
|
|
|
let greeting: string = "Hello";
|
|
|
|
let full_greeting: string = greeting ++ " " ++ name;
|
|
|
|
```
|
2019-11-08 03:19:27 +04:00
|
|
|
<!--END_DOCUSAURUS_CODE_TABS-->
|
|
|
|
|
|
|
|
|
|
|
|
## Slicing strings
|
|
|
|
|
|
|
|
Strings can be sliced using the syntax specific built-in built-in function:
|
|
|
|
|
|
|
|
<!--DOCUSAURUS_CODE_TABS-->
|
|
|
|
<!--Pascaligo-->
|
|
|
|
```pascaligo
|
|
|
|
const name: string = "Alice";
|
|
|
|
// slice = "A"
|
|
|
|
const slice: string = string_slice(0n, 1n, name);
|
|
|
|
```
|
2019-12-12 17:35:07 +04:00
|
|
|
<!--CameLIGO-->
|
2019-11-08 03:19:27 +04:00
|
|
|
```cameligo
|
|
|
|
let name: string = "Alice"
|
|
|
|
let slice: string = String.slice 0n 1n name
|
|
|
|
```
|
2019-12-11 13:34:08 +04:00
|
|
|
<!--ReasonLIGO-->
|
2019-12-10 17:47:31 +04:00
|
|
|
```reasonligo
|
|
|
|
let name: string = "Alice";
|
|
|
|
let slice: string = String.slice(0n, 1n, name);
|
|
|
|
```
|
2019-11-08 03:19:27 +04:00
|
|
|
<!--END_DOCUSAURUS_CODE_TABS-->
|
|
|
|
|
|
|
|
> ⚠️ Notice that the `offset` and slice `length` are `nats`
|
|
|
|
|
|
|
|
## Aquiring the length of a string
|
|
|
|
|
|
|
|
The length of a string can be found using the syntax specific built-in function:
|
|
|
|
|
|
|
|
<!--DOCUSAURUS_CODE_TABS-->
|
|
|
|
<!--Pascaligo-->
|
|
|
|
```pascaligo
|
|
|
|
const name: string = "Alice";
|
|
|
|
// length = 5
|
|
|
|
const length: nat = size(name);
|
|
|
|
```
|
2019-12-12 17:35:07 +04:00
|
|
|
<!--CameLIGO-->
|
2019-11-08 03:19:27 +04:00
|
|
|
```cameligo
|
|
|
|
let name: string = "Alice"
|
|
|
|
let length: nat = String.size name
|
|
|
|
```
|
2019-12-11 13:34:08 +04:00
|
|
|
<!--ReasonLIGO-->
|
2019-12-10 17:47:31 +04:00
|
|
|
```reasonligo
|
|
|
|
let name: string = "Alice";
|
|
|
|
let length: nat = String.size(name);
|
|
|
|
```
|
2019-11-08 03:19:27 +04:00
|
|
|
<!--END_DOCUSAURUS_CODE_TABS-->
|