Coder Social home page Coder Social logo

Comments (3)

apparentlymart avatar apparentlymart commented on September 27, 2024 1

Hi @doctornkz,

If you want to have a sequence where each element has its own type, I think tuple types are what you are looking for. You can use a tuple type instead of a list type to track each element value separately.

from go-cty.

doctornkz avatar doctornkz commented on September 27, 2024

I am not sure it's connected with topic, but I have problem with cty.Maps and cty.Objects, please point me if I'm wrong.
I need to create the structure - List of Maps. [{},{},...].
Obviously, I should to use cty.ListVal around ctyMapVal.
As example:

func main() {
	myMap := cty.MapVal(map[string]cty.Value{
		"test":  cty.NumberIntVal(1),
		"test3": cty.StringVal("test3"),
	})
	myMap2 := cty.MapVal(map[string]cty.Value{
		"test1": cty.NumberIntVal(1),
		"test2": cty.StringVal("test6"),
	})
	var rows []cty.Value
	rows = append(rows, myMap)
	rows = append(rows, myMap2)
	myList := cty.ListVal(rows)
	fmt.Printf("%v", myList)
}

I receive error:

panic: inconsistent map element types (cty.Number then cty.String)

Ok, unconsistent map fields/keys ! I need to use cty.Object, cos it have flexible types!

		myMap := cty.ObjectVal(map[string]cty.Value{
			"test":  cty.NumberIntVal(1),
			"test3": cty.StringVal("test3"),
		})
		myMap2 := cty.ObjectVal(map[string]cty.Value{
			"test1": cty.NumberIntVal(1),
			"test2": cty.StringVal("test6"),
		})
		var rows []cty.Value
		rows = append(rows, myMap)
		rows = append(rows, myMap2)
		myList := cty.ListVal(rows)
		///fmt.Printf("%v", myList)

But it also doesn't work for me:

panic: inconsistent list element types (cty.Object(map[string]cty.Type{"test3":cty.String, "test":cty.Number}) then cty.Object(map[string]cty.Type{"test1":cty.Number, "test2":cty.String}))

because ctyList wants to keep the equal structures in container. It's OK, it's golang way. But in Golang we have interface{} to create list of any types. What is the correct way for cty here?

from go-cty.

doctornkz avatar doctornkz commented on September 27, 2024

Thank you Martin, Thank you!
... 15 min later...
It works!

from go-cty.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.