Datový typ řetězec
Datový string
typ představuje sekvenci nulového nebo více znaků Unicode .
Informace o operátorech řetězcových dotazů najdete v tématu Řetězcové operátory.
Poznámka
- Interně jsou řetězce kódované v UTF-8. Neplatné znaky (jiné než UTF8) se v době příjmu nahradí náhradními znaky unicode U+FFFD .
- Kusto nemá žádný datový typ, který by odpovídal jednomu znaku. Jeden znak je reprezentován jako řetězec o délce 1.
- Pokud hodnota jednoho řetězce v záznamu překročí 1 MB (měřeno pomocí kódování UTF-8), při příjmu
string
dat se hodnota zkrátí a příjem dat proběhne úspěšně. Pokud hodnota jednoho řetězce v záznamu nebo celý záznam překročí povolený datový limit 64 MB, příjem dat selže.
string
Literály
K kódování řetězcových literálů v textu dotazu můžete použít dvojité nebo jednoduché uvozovky. U dvojitých uvozovek musíte uvozovat uvozovky se zpětným lomítkem (\
). U jednoduchých uvozovek musíte uvozovat řídicí znaky vnořených jednoduchých uvozovek a nemusíte uvozovat dvojité uvozovky.
Znak zpětného lomítka použijte k uvozovkách, znakům tabulátoru (\t
), znakům nového řádku (\n
) a samotnému zpětnému lomítku (\\
).
Poznámka
Znak nového řádku (\n
) a návratový znak (\r
) musí být uzavřeny v uvozovkách, pokud nepoužíváte řetězcové literály s více řádky.
Doslovné řetězcové literály
Podporují se také doslovné řetězcové literály. V tomto tvaru znak zpětného lomítka (\
) představuje sám sebe a není řídicím znakem. Předřazení znaku @
do řetězcových literálů slouží jako doslovný identifikátor. V doslovných řetězcových literálech jsou dvojité uvozovky uvozovány dvojitými uvozovkami a jednoduché uvozovky s jednoduchými uvozovkami.
Příklad najdete v tématu Doslovný řetězec.
Poznámka
Znak nového řádku (\n
) a návratový znak (\r
) musí být uzavřeny v uvozovkách, pokud nepoužíváte řetězcové literály s více řádky.
Řetězcové literály s více řádky
Označit víceřádkové řetězcové literály "trojitým zpětným akordem" (''') na začátku a konci literálu.
Příklad najdete v tématu Víceřádkový řetězcový literál.
Poznámka
- Víceřádkové řetězcové literály podporují nové znaky (
\n
) a návratové znaky (\r
). - Víceřádkové řetězcové literály nepodporují řídicí znaky. Podobá se doslovné řetězcové literály.
- Víceřádkové řetězcové literály nepodporují obfuskaci.
Zřetězení oddělených řetězcových literálů
Pokud v dotazu Kusto dva nebo více sousedících řetězcových literálů nemají žádné oddělení, automaticky se zkombinují a vytvoří nový řetězcový literál. Podobně platí, že pokud jsou řetězcové literály oddělené pouze prázdnými znaky nebo komentáři, zkombinují se také tak, aby vytvořily nový řetězcový literál.
Příklad najdete v tématu Zřetězené řetězcové literály.
Obfuskované řetězcové literály
Dotazy se ukládají pro telemetrii a analýzu. Pokud chcete chránit citlivé informace, jako jsou hesla a tajné kódy, můžete řetězec označit jako obfuskovaný řetězcový literál. Tyto označené řetězce se v textu dotazu nahradí hvězdičkami (*
).
Obfuskovaný řetězcový literál je vytvořen před vložením znaku h
H
nebo před standardní nebo doslovný řetězcový literál.
Příklad najdete v tématu Obfuskated řetězcový literál.
Důležité
Označte všechny řetězcové literály, které obsahují tajné informace, jako obfuskované řetězcové literály.
Tip
V některých situacích obsahuje tajné informace pouze část řetězcového literálu. V takových případech rozdělte literál na část, která není tajná, a část tajná. Pak označte jako obfuskovanou pouze část tajného kódu.
Příklady
Řetězcový literál s uvozovkami
Následující příklad ukazuje, jak používat uvozovky v řetězcových literálech zahrnujících jednoduché a dvojité uvozovky. Další informace najdete v tématu Řetězcové literály.
print
s1 = 'string with "double quotes"',
s2 = "string with 'single quotes'"
Výstup
s1 | s2 |
---|---|
řetězec s "dvojitými uvozovkami" | řetězec s jednoduchými uvozovkami |
Řetězcový literál se zpětným lomítkem
Následující příklad vytvoří vzor regulárního výrazu pomocí zpětných lomítek pro řídicí speciální znaky. Další informace najdete v tématu Řetězcové literály.
print pattern = '\\n.*(>|\'|=|\")[a-zA-Z0-9/+]{86}=='
Výstup
Vzor |
---|
\n.*(>|'|=|") [a-zA-Z0-9/+]{86}== |
Řetězcový literál s Kódováním Unicode
Následující příklad ukazuje, že zpětné lomítko je nutné, aby bylo možné zahrnout znak Unicode v řetězcovém literálu.
print space = "Hello\u00A0World"
Výstup
mezera |
---|
Hello World |
Doslovný řetězcový literál
Následující příklad vytvoří cestu, ve které jsou zpětná lomítka součástí cesty místo řídicích znaků. Chcete-li to provést, znaménko řetězce @
je předřazení řetězce a vytvoří doslovný řetězcový literál.
print myPath = @'C:\Folder\filename.txt'
Výstup
moje_cesta |
---|
C:\Folder\filename.txt |
Řetězcový literál s více řádky
Následující příklad ukazuje syntaxi víceřádkového řetězcového literálu, který používá nové řádky a tabulátory pro vytvoření stylu bloku kódu. Další informace najdete v tématu Víceřádkové řetězcové literály.
print program = ```
public class Program {
public static void Main() {
System.Console.WriteLine("Hello!");
}
}```
Výstup
program |
---|
public class Program { public static void Main() { System.Console.WriteLine("Hello!"); } } |
Zřetězené řetězcové literály
Všechny následující výrazy poskytují řetězec o délce 13. Další informace najdete v tématu Zřetězení literálů oddělených řetězců.
print
none = strlen("Hello"', '@"world!"),
whitespace = strlen("Hello" ', ' @"world!"),
whitespaceAndComment = strlen("Hello"
// Comment
', '@"world!"
);
Výstup
žádné | Mezery | whitespaceAndComment |
---|---|---|
13 | 13 | 13 |
Obfuskovaný řetězcový literál
Ve výstupu h
následujícího dotazu je řetězec viditelný. V trasování nebo telemetrii h
se ale řetězec nahradí hvězdičkami. Další informace najdete v tématu Obfuskované řetězcové literály.
print blob="https://contoso.blob.core.windows.net/container/blob.txt?"
h'sv=2012-02-12&se=2013-04-13T0...'
Výstup
blob |
---|
https://contoso.blob.core.windows.net/container/blob.txt?sv=2012-02-12& se=2013-04-13T0... |
Související obsah
Váš názor
https://aka.ms/ContentUserFeedback.
Připravujeme: V průběhu roku 2024 budeme postupně vyřazovat problémy z GitHub coby mechanismus zpětné vazby pro obsah a nahrazovat ho novým systémem zpětné vazby. Další informace naleznete v tématu:Odeslat a zobrazit názory pro