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

Automatic API Documentation Swagger in Golang #GolangDev

pixabay.com In this article, I'll explain how to generate an API blueprint instantly using SwagGo in Golang. API blueprint is a document that contains a bunch of API endpoints, its slickly same as documentation but less description, it's allow another programmer to read and see all the available endpoint and try it out with sandbox feature. Swagger is one of the most used API blueprints right now, it's available in free but limited usage. if you wanna use the free credit, you need to understand YAML notation, you can read the example notation in swagger official documentation. but again, it's really hard and takes an expensive time to arranges all the notation to achieve a good API blueprint. fortunately, there are tools in Golang that allow us to generate the YAML notation and automatically generate the blueprint page with only using markup notation, and it's FREE unlimited for self-host, insane right? SwagGo tools are available here , the documentation is very cl...

Membuat Kalkulator BMI Swift dan UIKIT #IOSDEV

halo semuanya, kali ini saya mau membagikan project kecil kecilan saya yang terinspirasi dari apps di appstore, kali ini saya mau membuat kalkulator BMI menggunakan swift dan UIKIT, kalkulator BMI adalah kalkulator untuk mengukur apakah berat badan kita termasuk kedalam kurus, normal, gemuk atau obesitas, dengan memanfaatkan UIKIT saya akan menyajikan kalkulator dengan tampilan lebih interaktif. berikut tampilan kalkulatornya. kalkulator ini memiliki beberapa komponen yaitu : 1. slider 2. label 3. segmented control slider kita gunakan untuk mengatur angka yang ingin di inputkan oleh user, kita batasi sesuai dengan berat dan tinggi manusia pada umumnya. label kita gunakan untuk menampilkan hasil dari input user dan memberikan judul dari komponen tertentu. segmented control digunakan untuk memberikan efek dark dan light mode seperti aplikasi telegram dan twitter. oke lanjut saja ke langkah2nya. 1. buat project xcode dengan nama BMICalculator 2. lalu siapkan se...

Laravel Database : Membuat Jutaan Data Dummy Menggunakan Faker Generator di Laravel

faker generator adalah salah satu library magic yang build in di laravel, dengan menggunakan library ini kita bisa membuat puluhan, ratusan bahkan jutaan data dummy dengan hanya sekali pukul. udah kebayang belom? kalo belom kita langsung aja masuk ke praktiknya. like foolest people gonna smart when use faker oke guys, lets do this. pertama tama, liat diagram berikut yak, biar runtut langkah langkahnya naah langkah runtutnya kurang lebih seperti ini  create migration->model->faker->seeder->execute->test oke guys, mari kita buat migrationnya, studi kasus yang mau kita buat adalah membuat artikel blog dengan table sederhana seperti berikut 1. ketikkan perintah berikut di terminal php artisan make:migration artikel  2. buka file migrationnya di folder database>migration>[nama migration] 3. ketikkan perintah berikut di terminal php artisan migrate oke guys hasilnya nanti akan seperti ini setelah lang...