A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://developer.hashicorp.com/terraform/plugin/framework/handling-data/types/float64 below:

Float64 types | Terraform | HashiCorp Developer

Float64 types store a 64-bit floating point number.

By default, float64 from schema (configuration, plan, and state) data are represented in the framework by types.Float64Type and its associated value storage type of types.Float64. These types fully support Terraform's type system concepts that cannot be represented in Go built-in types, such as *float64. Framework types can be extended by provider code or shared libraries to provide specific use case functionality.

Use one of the following attribute types to directly add a float64 value to a schema or nested attribute type:

If the float64 value should be the element type of a collection attribute type, set the ElemType field to types.Float64Type or the appropriate custom type.

If the float64 value should be a value type of an object attribute type, set the AttrTypes map value to types.Float64Type or the appropriate custom type.

Tip

Review the attribute documentation to understand how schema-based data gets mapped into accessible values, such as a types.Float64 in this case.

Access types.Float64 information via the following methods:

In this example, a float64 value is checked for being null or unknown value first, before accessing its known value:

// Example data model definition
// type ExampleModel struct {
//   ExampleAttribute types.Float64 `tfsdk:"example_attribute"`
// }
//
// This would be filled in, such as calling: req.Plan.Get(ctx, &data)
var data ExampleModel

// optional logic for handling null value
if data.ExampleAttribute.IsNull() {
    // ...
}

// optional logic for handling unknown value
if data.ExampleAttribute.IsUnknown() {
    // ...
}

// myFloat64 now contains a Go float64 with the known value
myFloat64 := data.ExampleAttribute.ValueFloat64()

Call one of the following to create a types.Float64 value:

In this example, a known float64 value is created:

Otherwise, for certain framework functionality that does not require types implementations directly, such as:

Numbers can be automatically converted from the following Go types, pointers to these types, or any aliases of these types, such type MyNumber int:

An error will be returned if the value of the number cannot be stored in the numeric type supplied because of an overflow or other loss of precision.

In this example, a float64 is directly used to set a float64 attribute value:

diags := resp.State.SetAttribute(ctx, path.Root("example_attribute"), 1.23)

In this example, a types.List of types.Float64 is created from a []float64:

listValue, diags := types.ListValueFrom(ctx, types.Float64Type, []float64{1.2, 2.4})

The framework supports extending its base type implementations with custom types. These can adjust expected provider code usage depending on their implementation.


RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4