A more direct approach to checking if an identifier is exported would be

```go
unicode.IsUpper(fieldName[0]) 
```

Alternatively, 

```go
v.Field(i).CanInterface()
```

may be even more straightforward