Skip to main content

Variadic Function vs Slice Param Function in Golang #GolangDev

pixabay.com


Hello everyone, good to see you again. I am gonna share about a simple thing in fundamental Golang, this article inspired by a QnA in a website and I think I will tell the answer more flexible and wider in my personal tutorial, so this is about differentiation between Variadic Function and Slice Param in Function.


# Variadic Function


Variadic function is an unique code, this code is enable us to passing a infinite params in one function, we know that we need to put parameters in function we need to put the space in there, for example : function(param1 int, param2 string), golang absolutely doing that thing too, seems like the other languages, but Variadic function is a something new, you could put many value in function and sapparated by comma, you maybe thing about passing array in parameters but this is something different, you dont need to put parenteses when you call the function, it just like you put regular parameters but have an infinite numbers.  for example :


we could see that in parameter scope, you put a param variable that followed by three dots and data type, seems like when you defince a slice without a defining a space you put three dots to make its infinite. to call above function the code would be like this


that is variadic function. its totally unique right? but the question is, when we should use this variadic function? if you ever read about clean code, there is a rules that don't put more than 3 parameters in one function, variadic is really opposite for that rules, so I think this variadic function is only suitable in some cases, like applying in algorithm sometimes you need to put dynamic value parameters and need to reduce memory allocation in variable to push performance higher, then variadic function maybe the right option. the negative side of this function is, you only able to put one data type in one function. its mean if you put int in variadic function, so you only able to pass int on there. you can't put int and string params in one function.




# Slice Param in Function


Slice param is a regular thing that you could see in other language too, slice is an other word for array in Golang, however its there is a different thing between the two, but you could read it as array tho. the function is a regular, just like the normal function do, but you need to put a slice data type in param and the parameters could have a different data type in one function. for example :



IMHO the different between using variadic function and using slice in param function is about the functionality of the method, if you use a query and logic thing maybe put value in slice is the good option, because you need to make its as clean as possible, put it in variable is more readable. you could see above code, you can read it more clear right?.


# Conclusion 


Variadic and Slice param in Function is a different thing, and its has a spesific case to applying them, its totally depend on your code purposes, if you doing algorithm thing that need a optimal performance, maybe variadic function is the right option. and if you doing query and logic thing maybe slice is the right option. but at the end its all about your preferences, and my suggest maybe wrong on your cases. but in my experience that is the right option, and you might be consider my thought :) good luck guys

Popular posts from this blog

Mengapa .env File Laravel Tidak Terupload / Tercommit ke Git

.env file atau bisa kita bilang "environment file" atau file yang berisi variable constan untuk memberikan value secara global ke dalam aplikasi kita. file ini berisi variable dan value yang sensitif yang membuatnya sangat riskan atau beresiko apabila di ketahui oleh orang yang tidak bertanggung jawab. contoh  seperti berikut ini file .env di atas memiliki informasi sensitif seperti host, user dan password dari database kita. maka dari itu kita sebagai developer harus pintar-pintar untuk memperlakukan .env file ini, secara default apabila kita upload ke hosting atau vps file .env ini tidak akan bisa di akses secara global dari host kita, karna letak root host kita ada di folder public yang notabene berada di satu level ke atas folder dari posisi .env. jadi user awam tidak akan bisa mengakses dari host kita eg : http://angon.dev/.env . nah kalo ke git gmn? apabila kita menggunakan version controller seperti github, gitlab, bitbucket. secara default git akan mem...

Laravel Route : Pengertian Router Resource

bill.web.id, Router laravel adalah kode program yang di gunakan untuk mendefinisikan url pada project laravel kita. router memanfaatkan htaccess untuk membuat url project kita sangat seo friendly. berbada dengan CI, router pada laravel sangat customable, berapapun level url slash nya tidak berpengaruh dengan controller dan method yang di panggil. contoh Route :: get ( $uri , $callback ) ; $uri : di isi oleh url yang ingin kita buat $callback : di isi oleh nama class dan atau method dari controller Baca Juga : Laravel Library : Chatter Forum Laravel Library tentu hal ini sangat menguntungkan bagi para pengamat seo, bahwa nama url sangat berpengaruh terhadap SEO,  seperti kita tau search engine mengidentifikasi url dari nama yang tersemat di dalam urlnya, jadi pengalamatan url yang bagus akan berdampak pada kemudahan halaman kita akan terindeks search engine. Router sendiri memiliki banyak metode, tiap metode berasosiasi pada HTTP VERB , http verb ...

Membuat Game Sederhana Dengan JavaScript

Assalamualaikum Wr Wb Javascript adalah Bahasa pemrograman yang di pakai di web, javascript kebanyakan di gunakan untuk kebutuhan membuat animasi, tapi tidak semata-mata javascript hanya bisa di pakai untuk membuat animasi, untuk kebutuhan operasi web pun sering di gunakan. Javascript bersifat Client Side, maksudnya adalah javascript berjalan di PC pengguna atau pengakses web, dan scriptnya pun bisa di lihat oleh user, berbeda dengan PHP yang scriptnya tidak bisa di lihat oleh user. Selain di buat animasi, Javascript juga bisa di pakai untuk membuat aplikasi web, salah satunya adalah GAME, pada kesempatan kali ini saya akan memberikan tutorial bagaimana membuat GAME sederhana dengan Javascript, memanfaatkan event-event dalam javascript. berikut screenshoot dari game sederhana : Alur Game : 1. Klik button Start. 2. gambar monster akan bergerak cepat. 3. klik sebanyak mungkin gambar monsternya. 4. Apabila skor lebih dari 20, maka anda akan menang. untuk s...