poniedziałek, marca 11, 2019

Go, a łatwość czytania kodu

Tak się teraz trochę bawię językim Go.
Biore proste zadanka z LeetCode, które już kiedyś napisałem w Java'ie (jak znajdę takie, którego nie zrobiłem to będzie jeszcze fajniej ;-)) i piszę je w Go.
Bez patrzenia na wersję w Java'ie, dopiero później wracam do wersji w Java'ie.
I ciekawa sprawa wydaje mi się, że kod w Go jest jakby sam z siebie czytelniejszy.

Tutaj wersja w Java'ie jednego z programików:
    public int removeDuplicates(int[] nums) {
if (nums==null || nums.length==0) return 0;
int nextIdx = 0;
int prev = nums[nextIdx++];
for (int i:nums) {
if (i!=prev) {
nums[nextIdx++]=i;
prev=i;
}
}
return nextIdx;
}
A tutaj w Go:
func removeDuplicates(nums []int) int {
if len(nums)==0 {
return 0
}
a:=1
b:=1
for a<len(nums) {
for a<len(nums) && nums[a-1]==nums[a] {
a++
}
if a==len(nums) {
break
}
nums[b]=nums[a]
a++
b++
}
return b
}
Mimo wszystko wydaje mi się, że wersja w Go jest jakby ciut bardziej czytelna.

Może chodzi o brak nawiasów w warunku if'a?

Chociaż cholery mogę dostać z tym ich umieszczaniem typu po zmiennej czy funkcji.....
OK, algo jest niby takie samo, ale ciut różne więc to jeszcze inna sprawa, ale wydaje mi się, że ten kod Go jest jakby mniej wymagający w czytaniu.


Podobne postybeta
Java i liczby pierwsze, odsłona druga
Słaby, ale wojujący ateizm - czyli "obiektywne" dziennikarstwo ;-)
Światełko w tunelu :-)
Deklaratywnie czy imperatywnie... oto jest pytanie ;-)
Plus dla Scala, minus dla Groovy ;-)

Brak komentarzy:

Prześlij komentarz