Skip to content

proposal: different octal base literal representation #12711

Closed
@RomanSaveljev

Description

@RomanSaveljev

Shortly

Proposal is to add an alternative syntax for representing octal literals and deprecate the current syntax in Go 2+. Deprecation is not necessary, but is personally perceived to be inline with Go's idioms

Current syntax: octal_lit = "0" { octal_digit } .
Proposed change: octal_lit = "0o" { octal_digit } .

Background

The idea is directly borrowed from CoffeeScript, where the feature exists to help developers to avoid various typos in their code:

  • Missed x in 0x1234
  • Missed . after 0 in 0.1234
  • Missed . before 0 in .01234
  • Extra leading 0 in decimal literal as in 01234

Personal view on the current syntax

I think that the current syntax for octal literals is outdated and was simply copied from ancestor languages, because the problem it introduced there was not evident. This proposal may very well be rejected on the grounds of Go 1 compatibility promise assesment, but I guess it is good to keep the pressure for a change.

Metadata

Metadata

Assignees

No one assigned

    Labels

    FrozenDueToAgeNeedsDecisionFeedback is required from experts, contributors, and/or the community before a change can be made.ProposalProposal-Acceptedv2An incompatible library change

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions