Другое забавное дополнение в 1.9 функциональностях Proc является Proc#curry, который позволяет Вам поворачивать Proc, принимающий n аргументы в одно принятие n-1. Здесь это объединено с Proc# === подсказка, которую я упомянул выше:
it_is_day_of_week = lambda{ |day_of_week, date| date.wday == day_of_week }
it_is_saturday = it_is_day_of_week.curry[6]
it_is_sunday = it_is_day_of_week.curry[0]
case Time.now
when it_is_saturday
puts "Saturday!"
when it_is_sunday
puts "Sunday!"
else
puts "Not the weekend"
end
Ссылки нельзя переназначить, в то время как указатели можно. Уже одно это делает указатели полезными во многих ситуациях, когда ссылки использовать нельзя.
Go разработан как лаконичный, минималистский язык. Поэтому он начался только с значений и указателей. Позже, по необходимости, были добавлены некоторые ссылочные типы (срезы, карты и каналы).
«Там есть по этой теме много истории. Вначале карты и каналы были синтаксически указателями, и было невозможно объявить или использовать экземпляр без указателя. Кроме того, мы боролись с тем, как должны работать массивы. В конце концов мы решили, что строгое разделение указателей и значения усложнили использование языка.Эти проблемы решило введение ссылочных типов, в том числе срезов для обработки ссылочной формы массивов. Одной из жертв, по-видимому, является возможность отмечать переменные (за исключением базовых констант времени компиляции) и параметры как неизменяемые. Его просили, но отказали.
golang-nut: иди, язык. Некоторые отзывы и сомнения.
"Добавление const к системе типов заставляет его появляться повсюду, и Одной из жертв, по-видимому, является возможность отмечать переменные (за исключением базовых констант времени компиляции) и параметры как неизменяемые. Его просили, но отказали.
golang-nut: иди, язык. Некоторые отзывы и сомнения.
"Добавление const к системе типов заставляет его появляться повсюду, и заставляет убирать его везде, если что-то изменится. Пока там может быть полезно пометить объекты как неизменяемые, мы не думаю, что квалификатор типа const - лучший способ ".