diff --git a/02-funcs_and_pointers.slide b/02-funcs_and_pointers.slide index 695554c..2a1d1d9 100644 --- a/02-funcs_and_pointers.slide +++ b/02-funcs_and_pointers.slide @@ -12,21 +12,21 @@ http://fmi.golang.bg/ * Въпрос за мъфин #1 -Възможно ли е да използвам go1.11 за да компилирам програма от 2012г.? Защо? +Възможно ли е да използвам go1.11, за да компилирам програма от 2012г.? Защо? - Да - [[https://golang.org/doc/go1compat][go1compat гаранция]] * Въпрос за мъфин #2 -Какъв тип връша main функцията? +Какъв тип връща main функцията? - Не връща нищо * Въпрос за мъфин #3 -Можем ли да дефинираме променлива без да пишем тима излишно? +Можем ли да дефинираме променлива без да пишем типа излишно? Да - чрез [[https://tour.golang.org/basics/14][type inference]] @@ -62,7 +62,7 @@ http://fmi.golang.bg/ Мъфините съдържат - Мляко, яйца, лешници, какао, шоколад, захар, брашно, слънчогледово олио -- Абе, всичко към което е възможно да сте алергични +- Абе, всичко, към което е възможно да сте алергични - Моля, не се наранявайте с тях! * ... и няколко неща, които пропуснахме @@ -139,9 +139,9 @@ note: Не сме секта. Извикваме я с колкото ни трябват - sum() //0 - sum(2, 3) //5 - sum(2, 3, 4, 5) //14 + sum() // 0 + sum(2, 3) // 5 + sum(2, 3, 4, 5) // 14 Трябва да е последния аргумент на функцията * Следващия път ще говорим по-подробно за `range` @@ -287,7 +287,7 @@ note: Не сме секта. * Доуточнения -- `defer` statement-ите ни позволяват да мислим за затварянето на файловете веднага след отварянето им +- `defer` statement-ите ни позволяват да мислим за затварянето на ресурси веднага след отварянето им - Това ни гарантира, че няма да забравим в никой случай за затварянето им, независимо кой, кога и как променя кода след нас * Три прости правила за defer (1) @@ -357,7 +357,7 @@ note: Не сме секта. - Имаме тип указател: `*int` - Указателите са с константна големина - Указател може да сочи към указател -- В Go една стойност се изчиства от паметта когато няма указатели към нея +- В Go една стойност се изчиства от паметта, когато няма указатели към нея - Не можем да имаме указатели към константи - Очевидно `intP`==`*(&intP)` @@ -365,7 +365,7 @@ note: Не сме секта. .play code/funcs_and_pointers/pointers.go -* Как да си направим дупка в крака? +* Как да се застреляме в крака? .play code/funcs_and_pointers/broken_pointer.go @@ -378,6 +378,6 @@ note: Не сме секта. Демек `a` бива копиран в скоупа на `foo`, а `b` просто сочи към някаква стойност отвън. - `b` не се копира. Ако в него има около 652183859 символа*, това е предимство -- Каквото и да правим с `a` не влияе на нищо извън тази функция -- Каквото и да направим с `b` променяме оригиналната стойност +- Каквото и да правим с `a`, не влияем на нищо извън тази функция +- Каквото и да направим с `b`, оригиналната стойност би се променила _*Следващия_път_ще_видим_защо_указател_към_string_може_да_не_ни_спести_кой-знае_колко_памет_