|
|
- cast
- ====
- [![GoDoc](https://godoc.org/github.com/spf13/cast?status.svg)](https://godoc.org/github.com/spf13/cast)
- [![Build Status](https://api.travis-ci.org/spf13/cast.svg?branch=master)](https://travis-ci.org/spf13/cast)
- [![Go Report Card](https://goreportcard.com/badge/github.com/spf13/cast)](https://goreportcard.com/report/github.com/spf13/cast)
-
- Easy and safe casting from one type to another in Go
-
- Don’t Panic! ... Cast
-
- ## What is Cast?
-
- Cast is a library to convert between different go types in a consistent and easy way.
-
- Cast provides simple functions to easily convert a number to a string, an
- interface into a bool, etc. Cast does this intelligently when an obvious
- conversion is possible. It doesn’t make any attempts to guess what you meant,
- for example you can only convert a string to an int when it is a string
- representation of an int such as “8”. Cast was developed for use in
- [Hugo](http://hugo.spf13.com), a website engine which uses YAML, TOML or JSON
- for meta data.
-
- ## Why use Cast?
-
- When working with dynamic data in Go you often need to cast or convert the data
- from one type into another. Cast goes beyond just using type assertion (though
- it uses that when possible) to provide a very straightforward and convenient
- library.
-
- If you are working with interfaces to handle things like dynamic content
- you’ll need an easy way to convert an interface into a given type. This
- is the library for you.
-
- If you are taking in data from YAML, TOML or JSON or other formats which lack
- full types, then Cast is the library for you.
-
- ## Usage
-
- Cast provides a handful of To_____ methods. These methods will always return
- the desired type. **If input is provided that will not convert to that type, the
- 0 or nil value for that type will be returned**.
-
- Cast also provides identical methods To_____E. These return the same result as
- the To_____ methods, plus an additional error which tells you if it successfully
- converted. Using these methods you can tell the difference between when the
- input matched the zero value or when the conversion failed and the zero value
- was returned.
-
- The following examples are merely a sample of what is available. Please review
- the code for a complete set.
-
- ### Example ‘ToString’:
-
- cast.ToString("mayonegg") // "mayonegg"
- cast.ToString(8) // "8"
- cast.ToString(8.31) // "8.31"
- cast.ToString([]byte("one time")) // "one time"
- cast.ToString(nil) // ""
-
- var foo interface{} = "one more time"
- cast.ToString(foo) // "one more time"
-
-
- ### Example ‘ToInt’:
-
- cast.ToInt(8) // 8
- cast.ToInt(8.31) // 8
- cast.ToInt("8") // 8
- cast.ToInt(true) // 1
- cast.ToInt(false) // 0
-
- var eight interface{} = 8
- cast.ToInt(eight) // 8
- cast.ToInt(nil) // 0
-
|