Bıcep içindeki veri türleri
Bu makalede Bıcep'de desteklenen veri türleri açıklanmaktadır.
Desteklenen türler
Bir Bıcep 'de şu veri türlerini kullanabilirsiniz:
- array
- bool
- int
- object
- secureObject-Bıcep 'de değiştiriciye göre belirtildi
- secureString-Bıcep 'de değiştiriciye göre belirtildi
- string
Diziler
Diziler sol köşeli ayraç () ile başlar [ ve sağ köşeli ayraç () ile biter ] . Bıcep 'de, bir dizi birden çok satırda bildirilmelidir. Değerler arasında virgül kullanmayın.
Bir dizide, her öğe herhangi bir türtarafından temsil edilir. Her öğenin aynı veri türü veya farklı veri türleri tutan bir dizi olduğu bir diziye sahip olabilirsiniz.
Aşağıdaki örnek, bir tamsayılar dizisini ve dizi farklı türleri gösterir.
var integerArray = [
1
2
3
]
var mixedArray = [
resourceGroup().name
1
true
'example string'
]
Bicep içindeki diziler sıfır tabanlıdır. Aşağıdaki örnekte, ifadesi exampleArray[0] 1 olarak değerlendirilir ve exampleArray[2] 3 olarak değerlendirilir. Dizin oluşturucunun dizini başka bir ifade olabilir. İfade exampleArray[index] 2 olarak değerlendirilir. Tamsayı dizin oluşturucularının yalnızca dizi türleri ifadesinde izin verilir.
var index = 1
var exampleArray = [
1
2
3
]
Boolean değerleri
Boole değerleri belirtirken, veya kullanın true false . Değeri tırnak işaretleriyle çevreleyin.
param exampleBool bool = true
Tam Sayılar
Tamsayı değerlerini belirtirken, tırnak işaretleri kullanmayın.
param exampleInt int = 1
Bıcep 'de, tamsayılar 64 bit tamsayılardır. Satır içi parametreler olarak geçirildiğinde, değer aralığı, dağıtım için kullandığınız SDK veya komut satırı aracıyla sınırlı olabilir. Örneğin, bir Bıcep 'yi dağıtmak için PowerShell kullanırken, tamsayı türleri-2147483648 ile 2147483647 arasında değişebilir. Bu sınırlamayı önlemek için bir parametre dosyasındabüyük tamsayı değerlerini belirtin. Kaynak türleri, tamsayı özellikleri için kendi sınırlarını uygular.
Kayan nokta, Decimal veya binary biçimleri şu anda desteklenmiyor.
Nesneler
Nesneler sol küme ayracı () ile başlar { ve sağ küme ayracı () ile biter } . Bıcep 'de, bir nesne birden çok satırda bildirilmelidir. Bir nesnedeki her özellik anahtar ve değerden oluşur. Anahtar ve değer iki nokta () ile ayrılır : . Bir nesne herhangi bir türdeki özelliğe izin verir. Özellikler arasında virgül kullanmayın.
param exampleObject object = {
name: 'test name'
id: '123-abc'
isCurrent: true
tier: 1
}
Bıcep 'de, nesne özelliği anahtarlarında tekliflere isteğe bağlı olarak izin verilir:
var test = {
'my - special. key': 'value'
}
Yukarıdaki örnekte, nesne özelliği anahtarları özel karakterler içerdiğinde tırnak işaretleri kullanılır. Örneğin boşluk, '-' veya '. '. Aşağıdaki örnek, nesne özelliği anahtarlarında ilişkilendirmeyi nasıl kullanacağınızı gösterir.
var stringVar = 'example value'
var objectVar = {
'${stringVar}': 'this value'
}
Özellik erişimcileri bir nesnenin özelliklerine erişmek için kullanılır. İşleci kullanılarak oluşturulur . .
var a = {
b: 'Dev'
c: 42
d: {
e: true
}
}
output result1 string = a.b // returns 'Dev'
output result2 int = a.c // returns 42
output result3 bool = a.d.e // returns true
Özellik erişimcileri, nesne türlerinin ve nesne sabit değerlerinin parametreleri ve değişkenleri dahil olmak üzere herhangi bir nesneyle birlikte kullanılabilir. Nesne olmayan tür ifadesinde bir özellik erişimcisi kullanılması bir hatadır.
Ayrıca, [] bir özelliğe erişmek için söz dizimini kullanabilirsiniz. Aşağıdaki örnek döndürür Development .
var environmentSettings = {
dev: {
name: 'Development'
}
prod: {
name: 'Production'
}
}
output accessorResult string = environmentSettings['dev'].name
Dizeler
Bıcep 'de, dizeler gömmeli tırnak işaretleriyle işaretlenir ve tek bir satırda bildirilmelidir. 0 Ile 10FFFF arasında kod noktaları olan tüm Unicode karakterlerine izin verilir.
param exampleString string = 'test value'
Aşağıdaki tabloda, bir ters eğik çizgi () karakteri tarafından kaçılması gereken ayrılmış karakter kümesi listelenmektedir \ :
| Çıkış Sırası | Temsil edilen değer | Notlar |
|---|---|---|
\\ |
\ |
|
\' |
' |
|
\n |
satır besleme (LF) | |
\r |
satır başı (CR) | |
\t |
sekme karakteri | |
\u{x} |
Unicode kod noktası x |
x , 0 ile 10FFFF (ikisi de dahil) arasında bir onaltılık kod noktası değeri temsil eder. Baştaki sıfırlara izin verilir. Ffff üzerindeki kod noktaları, bir vekil çifti olarak dağıtılır. |
\$ |
$ |
Yalnızca sonrasında kaçış { . |
// evaluates to "what's up?"
var myVar = 'what\'s up?'
Bıcep ' deki tüm dizeler ilişkilendirmeyi destekler. Bir ifade eklemek için ve ile çevreleyin ${ } . Başvurulan ifadeler birden çok satıra yayılamaz.
var storageName = 'storage${uniqueString(resourceGroup().id)}
Çok satırlı dizeler
Bıcep 'de, çok satırlı dizeler üç tek tırnak karakteri () arasında tanımlanır ''' ve isteğe bağlı olarak bir yeni satır (açma sırası) ve üç tek tırnak karakteri ( ''' -Kapanış dizisi). Açılış ve kapanış dizisi arasına girilen karakterler harfine okunurdur ve hiçbir kaçış gerekmez veya mümkün değildir.
Not
Bıcep ayrıştırıcısı tüm karakterleri olduğu gibi okuduğundan, bicep dosyanızın satır sonlarına bağlı olarak newlines veya olarak yorumlanabilecek \r\n \n .
Enterpolasyon, çok satırlı dizelerde Şu anda desteklenmiyor.
İçeren çok satırlı dizeler ''' desteklenmez.
// evaluates to "hello!"
var myVar = '''hello!'''
// evaluates to "hello!" because the first newline is skipped
var myVar2 = '''
hello!'''
// evaluates to "hello!\n" because the final newline is included
var myVar3 = '''
hello!
'''
// evaluates to " this\n is\n indented\n"
var myVar4 = '''
this
is
indented
'''
// evaluates to "comments // are included\n/* because everything is read as-is */\n"
var myVar5 = '''
comments // are included
/* because everything is read as-is */
'''
// evaluates to "interpolation\nis ${blocked}"
// note ${blocked} is part of the string, and is not evaluated as an expression
myVar6 = '''interpolation
is ${blocked}'''
Güvenli dizeler ve nesneler
Güvenli dize, dize ile aynı biçimi kullanır ve güvenli nesne nesneyle aynı biçimi kullanır. Bıcep ile, @secure() değiştiricisini bir dizeye veya nesnesine eklersiniz.
Bir parametreyi güvenli bir dizeye veya güvenli bir nesneye ayarladığınızda, parametrenin değeri dağıtım geçmişine kaydedilmez ve günlüğe kaydedilmez. Ancak, bu güvenli değeri güvenli bir değer beklemeyen bir özellik olarak ayarlarsanız değer korunmaz. Örneğin, bir etikete güvenli bir dize ayarlarsanız, bu değer düz metin olarak depolanır. Parolalar ve gizlilikler için güvenli dizeler kullanın.
Aşağıdaki örnek iki güvenli parametreyi göstermektedir:
@secure()
param password string
@secure()
param configValues object
Veri türü ile ilgili kullanılabilirlik
Bıcep 'de, bir türün (kaynak türü) bir değeri başka bir türe (hedef tür) atanabilir. Aşağıdaki tabloda hangi kaynak türünün (yatay olarak listelenen) hangi hedef türüne (dikey olarak listelenmektedir) atanabileceği veya atanabileceği gösterilmektedir. Tabloda, X atanabilir, boş alan atanabilir anlamına gelir ve ? yalnızca türleri uyumluysa anlamına gelir.
| Türler | any |
error |
string |
number |
int |
bool |
null |
object |
array |
adlandırılmış kaynak | adlandırılmış modül | scope |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
any |
X | X | X | X | X | X | X | X | X | X | X | |
error |
||||||||||||
string |
X | X | ||||||||||
number |
X | X | X | |||||||||
int |
X | X | ||||||||||
bool |
X | X | ||||||||||
null |
X | X | ||||||||||
object |
X | X | ||||||||||
array |
X | X | ||||||||||
resource |
X | X | ||||||||||
module |
X | X | ||||||||||
scope |
? | |||||||||||
| adlandırılmış kaynak | X | ? | ? | |||||||||
| adlandırılmış modül | X | ? | ? |
Sonraki adımlar
Bicep'in yapısı ve söz dizimi hakkında bilgi edinmek için bkz. Bicep dosya yapısı.