GitHub GitHub' da katkıda bulun: Çevrimiçi düzenle

Dizgi veri tipi

string veri tipi, sıfır ya da daha fazla Unicode karakterlik bir sırayı temsil eder.

  • Dizgiler dahili olarak UTF-8olarak kodlanır. Geçersiz (non-UTF8) karakterler, alım sırasında U + FFFD Unicode yerine koyma karakterleriyle değiştirilir.
  • KQL, tek bir karaktere eşdeğer bir veri tipine sahip değil. Tek bir karakter, 1 uzunluklu bir dizgi olarak gösterilir.
  • string veri tipinin kendisi dizginin uzunluğu için önceden tanımlanmış bir sınır bulunmaz, ancak gerçek somutlamalar tek tek değerleri sınırlamak için serbest bırakılabilir. Genellikle dizgiler 1MB ile sınırlıdır ( UTF-8 kodlaması kullanılarak ölçülür).

Dizgi hazır bilgileri

Bir sorgu metninde string veri tipinin hazır bilgilerini kodlamanın birkaç yolu vardır:

  • Dizgiyi çift tırnak içine alın ("): "This is a string literal. Single quote characters (') don't require escaping. Double quote characters (") are escaped by a backslash (\)."
  • Dizgiyi tek tırnak içine alın ('): 'Another string literal. Single quote characters (') require escaping by a backslash (\). Double quote characters (") do not require escaping.'

Yukarıdaki iki gösterimde, ters eğik çizgi (\) karakteri çıkış karakteri olarak gösterilir. Ters eğik çizgi, tırnak işareti karakterlerine, sekme karakterlerine (\t), yeni satır karakterlerine (\n) ve kendisine (\\) çıkış karakteri olarak kullanılır.

Yeni satır karakteri (\n) ve dönüş karakteri (\r) tırnak içine alınmadan dizgi hazır bilgisinin bir parçası olarak içerilemez. Ayrıca bkz. çok satırlı dizgi hazır bilgileri.

Harfi harfine dizilim hazır bilgileri-Şu anda desteklenmiyor

Verbatim dizgi hazır bilgileri de desteklenir. Bu formda, ters eğik çizgi karakteri (\) çıkış karakteri olarak değil, kendisi için kullanılır.

  • Çift tırnak içine alın ("): @"This is a verbatim string literal that ends with a backslash\."
  • Tek tırnak içine al ('): @'This is a verbatim string literal that ends with a backslash\.'

Yeni satır karakteri (\n) ve dönüş karakteri (\r) tırnak içine alınmadan dizgi hazır bilgisinin bir parçası olarak içerilemez. Ayrıca bkz. çok satırlı dizgi hazır bilgileri.

Dizgi hazır bilgileri birleştiriliyor-Şu an desteklenmiyor

Aralarında hiçbir şey yoksa, sorguda yeni bir dizgi hazır bilgisi oluşturmak için otomatik olarak iki ya da daha fazla dizgi hazır bilgisi birleştirilir ya da bunlar yalnızca beyaz alan ve yorumlarla ayrılır.
Örneğin, aşağıdaki ifadelerin tümü 13 uzunluğunda bir dizgi verir:

print strlen("Hello"', '@"world!"); // Nothing between them

print strlen("Hello" ', ' @"world!"); // Separated by whitespace only

print strlen("Hello"
  // Comment
  ', '@"world!"); // Separated by whitespace and a comment

Çok satırlı dizgi hazır bilgileri-Şu anda desteklenmiyor

Çok satırlı dizgi hazır bilgileri, yeni satır (\n) ve dönüş (\r) karakterlerinin çıkış karakteri gerektirmediği dizgi hazır bilgileridir.

  • Çok satırlı dizgi hazır bilgileri her zaman "triple-backtick chord" (` ` `) iki oluşum arasında görünür.

  • Çok satırlı dizgi hazır bilgileri, çıkış karakteri eklenmiş karakterleri desteklemez. Verbatim string literals' a benzer şekilde, çok satırlı dizgi hazır bilgileri yeni satır ve dönüş karakterlerine izin verir.
  • Çok satırlı dizgi hazır bilgileri gizlemeyi desteklemez.

Örnekler

// Simple string notation
print s1 = 'some string', s2 = "some other string"

// Strings that include single or double-quotes can be defined as follows
print s1 = 'string with " (double quotes)',
          s2 = "string with ' (single quotes)"

// Strings with '\' can be prefixed with '@' (as in c#)
print myPath1 = @'C:\Folder\filename.txt'

// Escaping using '\' notation
print s = '\\n.*(>|\'|=|\")[a-zA-Z0-9/+]{86}=='

// Encode a C# program in a Kusto multi-line string
print program=```
    public class Program {
    public static void Main() {
      System.Console.WriteLine("Hello!");
    }
    }```

Görüldüğü gibi, bir dizgi çift tırnak içine alındığında ("), tek tırnak işareti (') karakteri için çıkış karakteri gerekmez ve tersi de geçerlidir. Bu yöntem, bağlama göre dizgilerin alıntılmasını kolaylaştırır.

Gizlenmiş dizgi hazır bilgileri-Şu an desteklenmiyor

Sistem, sorguları izler ve bunları telemetri ve analiz amaçlarıyla saklar. Örneğin, sorgu metni küme sahibi tarafından kullanılabilir kılınabilir. Sorgu metni parolalar gibi gizli bilgiler içeriyorsa, gizli tutulması gereken bilgileri sızdırabilir. Böyle bir sızıntıyı önlemek için sorgu yazarı belirli dizgi hazır bilgilerini gizlenmiş dizgi hazır bilgileriolarak işaretleyebilir. Sorgu metnindeki bu tür hazır bilgiler, daha sonra analiz de finyerleştiryayın } (*) karakterleriyle otomatik olarak değiştirilir.

Not

Gizli bilgiler içeren tüm dizgi hazır bilgilerini, gizlenmiş dizgi hazır bilgileri olarak işaretleyin.

Gizlenmiş bir dizgi hazır bilgisi, "olağan" dizgi hazır bilgisi alınarak ve önünde bir h ya da H karakteri önden alınarak oluşturulabilir.

Örneğin:

h'hello'
h@'world'
h"hello"

Birçok durumda, dizgi hazır bilgisinin yalnızca bir kısmı gizlidir. Bu durumlarda, hazır bilgiyi gizli olmayan bir bölüme ve gizli bir bölüme bölüşürüz. O zaman gizli kısmı gizlenmiş olarak işaretle.

Örneğin:

print x="https://contoso.blob.core.windows.net/container/blob.txt?"
    h'sv=2012-02-12&se=2013-04-13T0...'