code: func (v *ListStore) Set(iter *TreeIter, columns []int, values []interface{}) error {
  	if len(columns) != len(values) {
  		return errors.New("columns and values lengths do not match")
  	}
  	for i, val := range values {
  		v.SetValue(iter, columns[i], val)
  	}
  	return nil
  }
docs: // TODO(jrick)
  /*
  func (v *ListStore) SetColumnTypes(types ...glib.Type) {
  }
  */
  // Set() is a wrapper around gtk_list_store_set_value() but provides
  // a function similar to gtk_list_store_set() in that multiple columns
  // may be set by one call.  The length of columns and values slices must
  // match, or Set() will return a non-nil error.
  //
  // As an example, a call to:
  //  store.Set(iter, []int{0, 1}, []interface{}{"Foo", "Bar"})
  // is functionally equivalent to calling the native C GTK function:
  //  gtk_list_store_set(store, iter, 0, "Foo", 1, "Bar", -1);