Programowanie rzutek - runy

Łańcuchy to ciąg znaków. Dart reprezentuje ciągi jako sekwencję jednostek kodu Unicode UTF-16. Unicode to format, który definiuje unikalną wartość liczbową dla każdej litery, cyfry i symbolu.

Ponieważ ciąg Dart jest sekwencją jednostek kodu UTF-16, 32-bitowe wartości Unicode w ciągu są reprezentowane przy użyciu specjalnej składni. ZArune jest liczbą całkowitą reprezentującą punkt kodowy Unicode.

Klasa String w dart:core Biblioteka zapewnia mechanizmy dostępu runes. Dostęp do jednostek kodu / run można uzyskać na trzy sposoby -

  • Korzystanie z funkcji String.codeUnitAt ()
  • Korzystanie z właściwości String.codeUnits
  • Korzystanie z właściwości String.runes

Funkcja String.codeUnitAt ()

Dostęp do jednostek kodu w ciągu można uzyskać za pośrednictwem ich indeksów. Zwraca 16-bitową jednostkę kodu UTF-16 pod podanym indeksem.

Składnia

String.codeUnitAt(int index);

Przykład

import 'dart:core'; 
void main(){ 
   f1(); 
} 
f1() { 
   String x = 'Runes'; 
   print(x.codeUnitAt(0)); 
}

Spowoduje to, co następuje output -

82

Właściwość String.codeUnits

Ta właściwość zwraca niemodyfikowalną listę jednostek kodu UTF-16 określonego ciągu.

Składnia

String. codeUnits;

Przykład

import 'dart:core';  
void main(){ 
   f1(); 
}  
f1() { 
   String x = 'Runes'; 
   print(x.codeUnits); 
}

Spowoduje to, co następuje output -

[82, 117, 110, 101, 115]

Właściwość String.runes

Ta właściwość zwraca iterowalną liczbę punktów kodu Unicode this string.Runes rozszerza iterowalność.

Składnia

String.runes

Przykład

void main(){ 
   "A string".runes.forEach((int rune) { 
      var character=new String.fromCharCode(rune); 
      print(character); 
   });  
}

Spowoduje to, co następuje output -

A 
s 
t 
r 
i 
n 
g

Punkty kodowe Unicode są zwykle wyrażane jako \uXXXX, gdzie XXXX to 4-cyfrowa wartość szesnastkowa. Aby określić więcej lub mniej niż 4 cyfry szesnastkowe, umieść wartość w nawiasach klamrowych. W tym celu można użyć konstruktora klasy Runes w bibliotece dart: core.

Przykład

main() { 
   Runes input = new Runes(' \u{1f605} '); 
   print(new String.fromCharCodes(input)); 
}

Spowoduje to, co następuje output -