Asosiy savol: Groovy-da o'zgaruvchilar turini aniqlash uchun qanday operatorlar, xususiyatlar va boshqalardan foydalanish mumkin?
Fon:
Menda o'zboshimchalik bilan chuqur joylashtirilgan lug'at ma'lumotlar tuzilmasi mavjud. Bu Grails boshqaruvchisida request.JSON
chaqiruvining natijasidir. Avvalo, ba'zi kalitlarning tegishli turlari bilan lug'atda mavjudligini tekshirishni xohlayman. Men buni amalga oshirishni xohlayman, prototipli ma'lumotlar strukturasini yaratish va ma'lumotlar tuzilmalarini solishtirish usulini aniqlash. Shunga o'xshash narsa:
def prototype = [ username: "JennyJeans",
message: [ subject: "Hello World!",
body: "Will write soon."
]
]
Albatta, bu erda Strings mazmuni muhim emas. Keyin, o'z harakatlarimda men shunday tasdiqlayman:
if(similarDataStructure(prototype, request.JSON)) {
// XXX
} else {
// report error
}
Xo'sh, similarDataStructure
usuli nima qiladi? Psevdokodda:
def similarDataStructure(a, b) {
if(type(a) != type(b)) return false
if(type(a) == dictionary) {
for key in a:
if(!similarDataStructure(a[key], b[key])) return false
}
return true
}
Agar chuqur tekshirishni amalga oshirishning yaxshiroq yo'li haqida o'ylay olsangiz, menga xabar bering.