示例#1
0
func runExample(client *as.Client) {
	key, err := as.NewKey(*shared.Namespace, *shared.Set, "appendkey")
	shared.PanicOnError(err)

	binName := "appendbin"

	// Delete record if it already exists.
	client.Delete(shared.WritePolicy, key)

	bin := as.NewBin(binName, "Hello")
	log.Println("Initial append will create record.  Initial value is ", bin.Value, ".")
	client.AppendBins(shared.WritePolicy, key, bin)

	bin = as.NewBin(binName, " World")
	log.Println("Append \"", bin.Value, "\" to existing record.")
	client.AppendBins(shared.WritePolicy, key, bin)

	record, err := client.Get(shared.Policy, key, bin.Name)
	shared.PanicOnError(err)

	if record == nil {
		log.Fatalf(
			"Failed to get: namespace=%s set=%s key=%s",
			key.Namespace(), key.SetName(), key.Value())
	}

	received := record.Bins[bin.Name]
	expected := "Hello World"

	if received == expected {
		log.Printf("Append successful: ns=%s set=%s key=%s bin=%s value=%s",
			key.Namespace(), key.SetName(), key.Value(), bin.Name, received)
	} else {
		log.Fatalf("Append mismatch: Expected %s. Received %s.", expected, received)
	}
}