当前位置: 首页 > news >正文

java中字面量和golang中字面量区别

Java 和 Go 语言中的字面量(literals)在概念上是相似的,都是表示固定值的符号表示形式。然而,它们在语法和支持的类型上有一些区别:

  1. 整数字面量:

    • Java: 整数字面量可以是十进制、十六进制或二进制。Java 7 引入了二进制字面量表示法。
      int decLiteral = 123;    // 十进制
      int hexLiteral = 0x7B;   // 十六进制
      int binLiteral = 0b1111011; // 二进制(Java 7及以上)
      
    • Go: 整数字面量同样可以是十进制、十六进制或二进制。Go 语言也支持指定整数的大小(如 int, int8, int32, int64, uint, uint8, uint32, uint64)。
      var decLiteral int = 123   // 十进制
      var hexLiteral int = 0x7B  // 十六进制
      var binLiteral int = 0b1111011 // 二进制
      var bigLiteral int64 = 0x123456789ABCDEF // 大整数
      
  2. 浮点数字面量:

    • Java: 浮点数字面量通常带有小数点,可以是十进制或科学计数法。
      double floatLiteral = 123.45;  // 十进制
      double sciLiteral = 1.23e4;     // 科学计数法
      
    • Go: 浮点数字面量同样可以是十进制或科学计数法,并且 Go 语言区分 float32float64
      var floatLiteral float64 = 123.45  // 十进制
      var sciLiteral float64 = 1.23e4   // 科学计数法
      
  3. 字符串字面量:

    • Java: 字符串字面量用双引号表示。
      String str = "Hello, World!";
      
    • Go: 字符串字面量可以用双引号或反引号(表示原始字符串)。
      var str string = "Hello, World!" // 双引号
      var rawStr string = `Hello, World!` // 反引号,包含特殊字符
      
  4. 布尔字面量:

    • Java: 布尔字面量是 truefalse
      boolean flag = true;
      
    • Go: 布尔字面量同样是 truefalse
  5. 字符字面量:

    • Java: 字符字面量用单引号表示,可以是 ASCII 字符或 Unicode 字符。
      char ch = 'A';
      char unicodeChar = '\u0041';
      
    • Go: 字符字面量也用单引号表示,可以是 ASCII 或 Unicode。
      var ch rune = 'A' // rune 是 Go 中表示 Unicode 字符的类型
      var unicodeChar rune = '\u0041'
      
  6. 空字面量:

    • Java: 空字面量是 null
      String nullStr = null;
      
    • Go: 空字面量是 nil
      var nilStr *string = nil
      
  7. 复合字面量:

    • Java: 从 Java 9 开始,支持使用菱形符号 <> 来声明和初始化泛型实例。
      List<String> list = new ArrayList<>();
      
    • Go: 支持使用花括号 {} 来创建数组、切片、映射和结构体的复合字面量。
      var arr [3]int = [3]int{1, 2, 3}
      var slice []int = []int{1, 2, 3}
      var mapVal map[string]int = map[string]int{"one": 1, "two": 2}
      var structVal struct{Name string; Age int} = struct{Name: "Alice", Age: 30}
      

尽管两种语言在字面量的表示上有许多相似之处,但它们在类型系统、语法和一些特定字面量的使用上有所不同。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 掌握Java并发编程基础
  • 计算机网络(网络层)
  • 基于RFID技术的智能压缩机装配线优化方案
  • 2024年有哪些好用的文件加密软件?十款常用加密软件推荐
  • Docker 环境下使用 Traefik v3 和 MinIO 快速搭建私有化对象存储服务
  • Ubuntu 22.04 Docker安装笔记
  • python3 pyside6图形库学习笔记及实践(四)
  • 社交巨头与去中心化:解析Facebook在区块链的角色
  • 记录|LabVIEW从0开始【09~10】
  • 操作系统(信号处理)
  • 新160个crackme - 023-TraceMe
  • Rabbitmq中的死信队列
  • 【时时三省】(C语言基础)二维数组
  • 【爬虫实战】利用代理爬取Temu电商数据
  • JS中【闭包】相关知识点解释
  • [Vue CLI 3] 配置解析之 css.extract
  • 【干货分享】SpringCloud微服务架构分布式组件如何共享session对象
  • CoolViewPager:即刻刷新,自定义边缘效果颜色,双向自动循环,内置垂直切换效果,想要的都在这里...
  • Debian下无root权限使用Python访问Oracle
  • Docker入门(二) - Dockerfile
  • happypack两次报错的问题
  • Hibernate【inverse和cascade属性】知识要点
  • Javascript 原型链
  • JWT究竟是什么呢?
  • MySQL QA
  • Otto开发初探——微服务依赖管理新利器
  • SpringCloud集成分布式事务LCN (一)
  • Webpack 4x 之路 ( 四 )
  • webpack+react项目初体验——记录我的webpack环境配置
  • 大数据与云计算学习:数据分析(二)
  • 对超线程几个不同角度的解释
  • 给自己的博客网站加上酷炫的初音未来音乐游戏?
  • 设计模式 开闭原则
  • 探索 JS 中的模块化
  • 用mpvue开发微信小程序
  • 远离DoS攻击 Windows Server 2016发布DNS政策
  • 中国人寿如何基于容器搭建金融PaaS云平台
  • FaaS 的简单实践
  • Redis4.x新特性 -- 萌萌的MEMORY DOCTOR
  • 哈罗单车融资几十亿元,蚂蚁金服与春华资本加持 ...
  • 说说我为什么看好Spring Cloud Alibaba
  • 移动端高清、多屏适配方案
  • #14vue3生成表单并跳转到外部地址的方式
  • #NOIP 2014# day.1 生活大爆炸版 石头剪刀布
  • #pragma once
  • (35)远程识别(又称无人机识别)(二)
  • (5)STL算法之复制
  • (C语言)逆序输出字符串
  • (Matlab)使用竞争神经网络实现数据聚类
  • (剑指Offer)面试题34:丑数
  • (经验分享)作为一名普通本科计算机专业学生,我大学四年到底走了多少弯路
  • (强烈推荐)移动端音视频从零到上手(上)
  • (学习日记)2024.03.12:UCOSIII第十四节:时基列表
  • (转)微软牛津计划介绍——屌爆了的自然数据处理解决方案(人脸/语音识别,计算机视觉与语言理解)...
  • (轉貼) VS2005 快捷键 (初級) (.NET) (Visual Studio)