String returns a new String attached to underlying value. If underlying value is not a string, failure is reported and empty (but non-nil) value is returned. Example: value := NewValue(t, "foo") value.String().IsEqualFold("FOO")
()
| 294 | // value := NewValue(t, "foo") |
| 295 | // value.String().IsEqualFold("FOO") |
| 296 | func (v *Value) String() *String { |
| 297 | opChain := v.chain.enter("String()") |
| 298 | defer opChain.leave() |
| 299 | |
| 300 | if opChain.failed() { |
| 301 | return newString(opChain, "") |
| 302 | } |
| 303 | |
| 304 | data, ok := v.value.(string) |
| 305 | |
| 306 | if !ok { |
| 307 | opChain.fail(AssertionFailure{ |
| 308 | Type: AssertValid, |
| 309 | Actual: &AssertionValue{v.value}, |
| 310 | Errors: []error{ |
| 311 | errors.New("expected: value is string"), |
| 312 | }, |
| 313 | }) |
| 314 | return newString(opChain, "") |
| 315 | } |
| 316 | |
| 317 | return newString(opChain, data) |
| 318 | } |
| 319 | |
| 320 | // Number returns a new Number attached to underlying value. |
| 321 | // |