GithubHelp home page GithubHelp logo

nullable, optional fields and has_ about protobuf HOT 3 CLOSED

gogo avatar gogo commented on September 28, 2024
nullable, optional fields and has_

from protobuf.

Comments (3)

awalterschulze avatar awalterschulze commented on September 28, 2024

Yes that is true.
nullable = false is not for you if you need to know if the field was set of not.
I tend to not use nullable=false for those respective fields.
having a has_fieldname bool for each field, would also require a setter api, which is not very goey.
You could look at https://github.com/dropbox/goprotoc I know they have a setter api.
Also note that proto3 does not allow you to see if a field has been set of not. They recommend declaring another bool flag field for each of those "optional" fields.
I hope some of this helps, otherwise please reopen the issue.

from protobuf.

mkevac avatar mkevac commented on September 28, 2024

Well, nullable = true is not for Go, because GC.
proto3 is very different protocol and I don't think we at Badoo will move to it. We will probably stick to proto2 for a time being.

But I understand your reluctance for adding setters.

from protobuf.

awalterschulze avatar awalterschulze commented on September 28, 2024

Do you think you would like to use setters?
Because then there is at least two usecases.

from protobuf.

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.