Шаг 103.
Язык программирования Go.
Пример. Пользовательский тип с единственным значением (окончание)

    На этом шаге мы завершим рассмотрение примера реализации пользовательского типа с единственным значением.

    Тип NLogic представляет собой законченный логический тип данных для применения в системах нечеткой логики, который можно использовать подобно любым другим пользовательским типам.

    То есть значения типа *NLogic можно сохранять в срезах, в виде ключей и значений в отображениях. Приведем пример использования значений типа NLogic.

func main() {
	a, _ := nlogic.New(0)
	b, _ := nlogic.New(.25)
	c, _ := nlogic.New(.75)
	d := c.Copy()
	if err := d.Set(1); err != nil {
		fmt.Println(err)
	}
	process(a, b, c, d)
	s := []*nlogic.NLogic{a, b, c, d}
	fmt.Println(s)
}
func process(a, b, c, d *nlogic.NLogic) {
	fmt.Println("Исходные значения:", a, b, c, d)
	fmt.Println("Not: ", a.Not(), b.Not(), c.Not(), d.Not())
	fmt.Println("Not Not: ", a.Not().Not(), b.Not().Not(), c.Not().Not(),
		d.Not().Not())
	fmt.Print("0.And(.25)→", a.And(b), "• .25.And(.75)→", b.And(c),
		"• .75.And(1)→", c.And(d), " • .25.And(.75,1)→", b.And(c, d), "\n")
	fmt.Print("0.Or(.25)→", a.Or(b), "• .25.Or(.75)→", b.Or(c),
		"• .75.Or(1)→", c.Or(d), " • .25.Or(.75,1)→", b.Or(c, d), "\n")
	fmt.Println("a < c, a == c, a > c:", a.Less(c), a.Equal(c), c.Less(a))
	fmt.Println("Bool: ", a.Bool(), b.Bool(), c.Bool(), d.Bool())
	fmt.Println("Float: ", a.Float(), b.Float(), c.Float(), d.Float())
}  

    Архив с примером можно взять здесь.

    На следующем шаге начнем рассматривать еще один пример, демонстрирующий применение объектно-ориентированного подхода в языке Go.


Предыдущий шаг Содержание Следующий шаг