Я делал это с телефоном Nokia, подключенным к машине Linux. У меня есть задание крона и сценарий, который проверил бы таблицу базы данных на новые сообщения и использование gnokii для отправки сообщений. Это работает отлично, если количество SMS, которое Вы - goig для отправки, не к большому.
Это незавершенное учебное упражнение и, конечно же, плохой пример хорошего стиля, но вот оно, ( spec ).
Вдобавок, в качестве более экзотического примера, я сделал сообщение в списке рассылки болтунов относительно использования интерфейса {} для создания функций, которые работают с анонимными данными (в данном случае "тройная операция" функция):
package main
import "fmt";
func Tern(exp bool, a interface{}, b interface{}) (interface{}) {
if exp { return a }
return b
}
func main() {
a := 7; b := 1;
result := Tern(a > b, a, b);
fmt.Printf("%d\n", result);
}
Базовая концепция интерфейсов в Go заключается в том, что любой объект, реализующий метод, определяющий интерфейс, может быть частью этого интерфейса.
Лучшим примером является интерфейс Writer. Роб Пайк приводит пример этого в своей вступительной речи на Google Tech Talk ( http://www.youtube.com/watch?v=rKnDgT73v8s ) - прокрутите до 33:25 в речи, чтобы получить объяснение. .