Bir SQL sorgusu, bu sorgunun soyut bir gösterimine ayrıştırır bir işlevi, parseQuery var.
Ben bir sorgu soyut bir temsil alır ve bir SQL sorgu dizesi döndüren bir işlev yazmak üzereyim.
İkinci fonksiyona ne demeliyim?
Bir SQL sorgusu, bu sorgunun soyut bir gösterimine ayrıştırır bir işlevi, parseQuery var.
Ben bir sorgu soyut bir temsil alır ve bir SQL sorgu dizesi döndüren bir işlev yazmak üzereyim.
İkinci fonksiyona ne demeliyim?
Yanıtlar:
Bence istediğiniz fiil 'oluşturmak'.
Tersi parse olan serialize
Derleyici terminolojisinde bunun tersi "ayrıktır". Özellikle ayrıştırma, bir belirteç akışını soyut sözdizimi ağaçlarına dönüştürürken ayrıştırılması soyut sözdizimi ağaçlarını bir belirteç akışına dönüştürür.
Oluştur? Bir sorguyu ayrıştırırken, onu kurucu parçalarına (jetonlar, vb.)
Mevcut adınızı tamamlamak için composeQuery en iyi şekilde görünür.
Ancak genel durumda, ayrışmanın tersi ǝsɹɐd
"Serileştirmek" muhtemelen istediğiniz kelimedir. Programdan dışa aktarılabilen (ve içe aktarılabilen) verilerin metinsel bir temsilini oluşturmak anlamına gelir.
ToQueryString ()
Kesinlikle Render.
üretmek veya yaymak, muhtemelen.
Sadece bir şeyler eklemek için.
Kesinlikle ayrıştırma iki yönlü bir kelimedir.
Bir özeti sorguya ayrıştırabilirsiniz.
Bir sorguyu soyut olarak ayrıştırabilirsiniz.
Soru şu olmalıdır, yöntemin ikinci kısmını ne olarak adlandırırsınız ve bu örnekte, bir sorgu yapmak için bir özeti ayrıştırdığınız için onu çağırırsınız parseAbstract
.
Soruyu cevaplamak için, ayrıştırmanın zıttı yoktur.
İstediğini al
Her birinin biraz farklı çağrışımları var.
Belki prettyPrintQuery ?
Geleneksel bir derleyicinin iki bölümü vardır: ayrıştırıcı ve kod üreticisi.
Yani buna "Üret" diyebilirsiniz. Tabii ki burada biraz farklı çünkü derleyici kaynak kodu yazmıyor. (bir ön derleyici olmadığı sürece).
Muhtemelen Biçim (). veya ToSQL ()
unParse ()? Şaka yapıyorum, toQueryString () ile giderdim
düzleştirmek?
Ayrıştırılmış sorgu nesnesi, belki de 1 boyutlu bir dizeye "düzleştirdiğiniz" bir koşul hiyerarşisini temsil eder.
Ancak nesneden dizeye gittiğiniz göz önüne alındığında, gerçekten sadece toString veya toSQL () veya bunun gibi bir şey kullanın. Ayrıca, iyi tasarladıysanız ve doğru uygulamayı kullanıyorsanız, daha sonra yeniden adlandırabilir ve sadece ne yaptığına dair yorumlara bir şeyler yapıştırabilirsiniz.
Ayrıştırma yerine serileştirmeyi ve serileştirmeyi söyleyebilirim ve ...
ToString () için giderim, çünkü onları genellikle zincirle iç içe geçirebilirsiniz (ters işlevler, Class1'den Class2'ye geçmenizi sağlar ve tersi)
DateTime.Parse( DateTime.Parse( myDate.ToString() ).ToString() );
Serialize () iyi bir seçim gibi görünüyor, ancak Deserialize () 'de zaten tam tersi.
Özel senaryoda, belirtildiği gibi, ToSql () iyi bir seçimdir.
Render kullanırdım
> a = 'html': { 'head': {'title': 'My Page'}, 'body': { 'h1': 'Hello World', 'p': 'This is a Paragraph' } }
> b = render(a)
> console.log(b)
<html>
<head>
<title>My Page</title>
</head>
<body>
<h1>Hello World</h1>
<p>This is a Paragraph</p>
</body>
</html>
Hangi IMHO, ayrıştırmanın () tersi
> c = parse(b)
{ 'html': {
'head': {
'title': 'My Page'
}
'body': {
'h1': 'Hello World',
'p': 'This is a Paragraph'
}
}
Ben genellikle bir dönüştürme yöntemi olarak "ayrıştırma" kullanın ve bu nedenle, ben "convert" için zıt bir kelime bulamıyorum. ("dönüştürülemez" dönüşümün kendisinin bir türü olduğu için bir şeyi "dönüştüremezsiniz").
bu şekilde düşünerek, (benim için) en iyi çözüm, farklı argümanlar alan iki “ayrıştırma” yöntemine sahip olmaktır. Örnek (Java):
public class FooBarParser{
public Foo parse(Bar bar);
public Bar parse(Foo foo);
}
deparse
Deparse şu şekilde ayrıştırmaktır:
Ayrıştırma / ayrılma yapı değişikliği değil dönüşümdür. Tüm ilişkileri ve yapıyı koruyarak, eşdeğer metin ve soyut sözdizimi ağacı biçimleri arasında hassas dönüşüm.
"Oluştur" yapının değişmesi anlamına gelir, bu yüzden tam olarak doğru değildir. Ayrı bağımsız parçalardan (genellikle ilk kez) birleştirmeyi önerir. Tıpkı "ayrışmanın" bağımsız parçalara bölünmesini önerdiği gibi. Sadece biçimi değil, formu da değiştirirler.
Hızlı bir arama şovu terimin içinde kullanıldığı anlamına gelir: