Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Golang 单引号、双引号和反引号

Golang 单引号、双引号和反引号

作者头像
twowinter
发布于 2020-04-16 15:54:13
发布于 2020-04-16 15:54:13
16K00
代码可运行
举报
文章被收录于专栏:twowintertwowinter
运行总次数:0
代码可运行

文章目录
  • 前言
  • 1 概述
  • 2 示例
  • 3 反引号的应用场景,为了展示字面量
  • 4 小结
  • END

1 概述

Golang限定字符或者字符串一共三种引号,单引号(’’),双引号("") 以及反引号(``)。反引号就是标准键盘“Esc”按钮下面的那个键。

对应的英文是:Single quote、Double quote、Back quote。

  • 单引号,表示byte类型或rune类型,对应 uint8和int32类型,默认是 rune 类型。byte用来强调数据是raw data,而不是数字;而rune用来表示Unicode的code point。
  • 双引号,才是字符串,实际上是字符数组。可以用索引号访问某字节,也可以用len()函数来获取字符串所占的字节长度。
  • 反引号,表示字符串字面量,但不支持任何转义序列。字面量 raw literal string 的意思是,你定义时写的啥样,它就啥样,你有换行,它就换行。你写转义字符,它也就展示转义字符。

2 示例

参考 https://golangbyexample.com/double-single-back-quotes-go/

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
package main

import (
    "fmt"
    "reflect"
    "unsafe"
)

func main() {
    //String in double quotes
    x := "tit\nfor\ttat"
    fmt.Println("Priting String in Double Quotes:")
    fmt.Printf("x is: %s\n", x)
    
   //String in back quotes
    y := `tit\nfor\ttat`
    fmt.Println("\nPriting String in Back Quotes:")
    fmt.Printf("y is: %s\n", y)
   
    //Declaring a byte with single quotes
    var b byte = 'a'
    fmt.Println("\nPriting Byte:")
    //Print Size, Type and Character
    fmt.Printf("Size: %d\nType: %s\nCharacter: %c\n", unsafe.Sizeof(b), reflect.TypeOf(b), b)
    
    //Declaring a rune with single quotes
    r := '£'
    fmt.Println("\nPriting Rune:")
    //Print Size, Type, CodePoint and Character
    fmt.Printf("Size: %d\nType: %s\nUnicode CodePoint: %U\nCharacter: %c\n", unsafe.Sizeof(r), reflect.TypeOf(r), r, r)
    //Below will raise a compiler error - invalid character literal (more than one character)
    //r = 'ab'
}

输出:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Priting String in Double Quotes:
x is: tit
for	tat

Priting String in Back Quotes:
y is: tit\nfor\ttat

Priting Byte:
Size: 1
Type: uint8
Character: a

Priting Rune:
Size: 4
Type: int32
Unicode CodePoint: U+00A3
Character: £

3 反引号的应用场景,为了展示字面量

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
package main

import (
	"log"
)

const (
	doubleQuote string = "\nmain {\nconsole.log(event)\nreturn ret\n};\n"
	backQuote string = `
	main {
		console.log(event)
	};
	`
)

func main() {
	log.Printf("doubleQuote:%v\n", doubleQuote[1])
	log.Printf("backQuote:%s\n", backQuote)
}

输出:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
doubleQuote:109
backQuote:
	main {
		console.log(event)
	};

4 小结

反引号在某些需要展示字符串字面量的场合还是很有用,比如我们要展示一个多行的函数。

单引号则通常用来表示rune类型,展示 unicode。

END


本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Node.js 严重漏洞使数百万系统面临 RCE 攻击
在广泛使用的Node.js包“systeminformation”中发现了一个严重的安全漏洞,可能会使数百万个系统面临远程代码执行 (RCE) 攻击。
星尘安全
2024/12/25
3470
Node.js 严重漏洞使数百万系统面临 RCE 攻击
Node.js 安全最佳实践
最近 Node.js 团队在官方文档上公布了一份最新的安全实践,解读了一些 Node.js 服务下一些常见的攻击场景以及预防手段,我们一起来看看吧!
ConardLi
2023/01/09
2.5K0
Node.js 安全最佳实践
Apple无线生态系统安全性指南
Apple公司拥有着世界上最大的移动生态系统之一,在全球拥有15亿台有源设备,并提供十二种专有的无线连续性服务。以往工作揭示了所涉及协议中的一些安全性和隐私性问题,这些工作对AirDrop进行了广泛的研究。为了简化繁琐的逆向工程过程,本研究提出了一个指南,指南介绍了如何使用macOS上的多个有利位置对所涉及协议进行结构化分析。此外还开发了一个工具包(https://github.com/seemoo-lab/apple-continuity-tools ),可以自动执行此手动过程的各个部分。基于此指南,本研究将分析涉及三个连续性服务的完整协议栈,特别是接力(HO,Handoff), 通用剪贴板(UC,Universal Clipboard)和Wi-Fi密码共享(PWS,Wi-Fi Password Sharing)。本研究发现了从蓝牙低功耗(BLE,Bluetooth Low Energy)到Apple专有的加密协议等多个漏洞。这些缺陷可以通过HO的mDNS响应,对HO和UC的拒绝服务(DoS)攻击,对PWS的DoS攻击(可阻止Wi-Fi密码输入)以及中间设备(MitM)进行设备跟踪。对将目标连接到攻击者控制的Wi-Fi网络的PWS进行攻击。本研究的PoC实施表明,可以使用价格适中的现成硬件(20美元的micro:bit和Wi-Fi卡)进行攻击。最后,建议采取切实可行的缓解措施,并与Apple分享我们的发现,Apple已开始通过iOS和macOS更新发布修复程序。
CDra90n
2023/06/25
9490
Apple无线生态系统安全性指南
教你利用Node.js漏洞搞事情
今天我们主要讲下Node.js的一些可以对渗透测试工作有一些帮助的漏洞。为了更好地让大家理解,我会对其中一些代码进行分
洛米唯熊
2019/07/25
2.9K0
教你利用Node.js漏洞搞事情
安全敞口:应用程序和API攻击不断飙升
近日,Akamai发布了《应用程序和API安全研究报告》,揭示了新兴的应用程序和API攻击形势,以更好地评估不断发展的TTP,并讨论了最新的保护技术。 漏洞之年 像Log4Shell和Spring4Shell这样的关键漏洞揭示了web应用程序和API存在的严重风险,以及它们作为威胁表面的重要性。随着组织继续采用更多的web应用程序来增强整体业务运营,每家公司平均使用1061个应用程序,这种攻击面还在继续扩大。随着新兴的零日漏洞数量在现有的安全漏洞之上进一步加速,组织比以往任何时候都更需要应用程序安全
FB客服
2023/05/12
3450
安全敞口:应用程序和API攻击不断飙升
关于 Node.js 的认证方面的教程(很可能)是有误的
原文地址:Your Node.js authentication tutorial is (probably) wrong 我搜索了大量关于 Node.js/Express.js 认证的教程。所有这些都是不完整的,甚至以某种方式造成安全错误,可能会伤害新用户。当其他教程不再帮助你时,你或许可以看看这篇文章,这篇文章探讨了如何避免一些常见的身份验证陷阱。同时我也一直在 Node/Express 中寻找强大的、一体化的解决方案,来与 Rails 的 devise 竞争。 更新 (8.7): 在他们的教程中,R
牧云云
2018/05/02
5.2K0
关于 Node.js 的认证方面的教程(很可能)是有误的
3 种确保开源Node.js依赖包安全的方法
随着Node.js应用程序的规模和特性的扩展,它们的依赖关系也会扩展。为了让Node.js应用程序能够正常运行,你还需要测试框架、UI框架、数据库客户端、像Express这样的MVC库等等。
前端修罗场
2022/07/29
1.2K0
3 种确保开源Node.js依赖包安全的方法
Node.js惊爆重大漏洞
近日,国家信息安全漏洞共享平台(CNVD)收录了Node.js反序列化远程代码执行漏洞(CNVD-2017-01206,对应 CVE-2017-594)。攻利用漏洞执行远程执行操作系统指令,获得服务器权限。由于目前验证代码已经公开,极有可能诱发大规模网站攻击。
疯狂的技术宅
2019/03/28
1K0
微软云服务被Spring4Shell攻击!!!!比肩Log4j高危漏洞?
1 ·.  微软在其云服务中检测到Spring4Shell攻击 4月4日,微软发布公告称, 安全团队检测到正利用近期曝出的Spring4Shell(又名 SpringShell)远程代码执行(RCE)漏洞进行的攻击,目标是自身的云服务产品。 Spring4Shell漏洞(跟踪为 CVE-2022-22965)源自 Spring 框架,该框架被称为“使用最广泛的 Java 轻量级开源框架”。微软365 Defender 威胁情报团队表示,自该漏洞出现以来,就监测到了利用云服务中Spring Cloud 和 S
老九君
2022/04/08
5390
微软云服务被Spring4Shell攻击!!!!比肩Log4j高危漏洞?
npm 生态系统存在巨大的安全隐患
最近,曾经在 2019 - 2022 年担任 npm 研发经理的 Darcy Clarke 公开吐槽了 npm 生态系统的安全性,称其一直具有巨大的安全隐患。
ConardLi
2023/08/23
3430
npm 生态系统存在巨大的安全隐患
CrowdStrike | 无文件攻击白皮书
CrowdStrike是端点保护平台(EPP)的最强者,是云交付的下一代端点保护的领导者。由于CrowdStrike邮件推送了“无文件攻击白皮书”《谁需要恶意软件?对手如何使用无文件攻击来规避你的安全
FB客服
2020/11/06
3.8K0
CrowdStrike | 无文件攻击白皮书
CVE-2019-7609 Kibana远程代码执行漏洞攻击方法和漏洞原理分析
本漏洞的exp放出来快一星期了,目前网上的分析文章也出了几篇,但是大都集中于通过容器简单复现攻击过程,没有深入的分析产生原因和exp的构造原理。笔者借鉴了大牛Michał Bentkowski,也就是漏洞发现者的博客上的英文ppt(参考链接3),写了这篇文章。本文详细介绍了在本地搭建了模拟攻击环境的过程(非docker搭建),并完整分析了这个漏洞的攻击原理。现在分享给大家。
FB客服
2019/11/08
2.1K0
CVE-2019-7609 Kibana远程代码执行漏洞攻击方法和漏洞原理分析
【技术圈】Chrome 80 稳定版发布| Node.js 安全漏洞修复
Chrome 80 稳定版已正式面向 Windows、macOS、Linux、Android 和 iOS 全平台推送。Chrome 80 是一个具有里程碑意义的版本,因为此版本对浏览器的操作方式进行了两项重大更改,这些变化将在未来几年内给用户带去深远的影响。
ConardLi
2020/02/20
1.5K0
【技术圈】Chrome 80 稳定版发布| Node.js 安全漏洞修复
犯罪寻找出路:网络犯罪生态系统的进化与探索
这种变化在很大程度上是由微软默认阻止宏驱动的,并迫使威胁行为者食物链上的每个人——从小型犯罪商品行为者到最有经验的网络犯罪分子——都改变了他们的业务运行方式。据悉,微软宣布分别于2021年10月和2022年2月开始默认阻止Office用户使用XL4和VBA宏。而这些变化于2022年开始初露端倪。
FB客服
2023/08/08
4540
犯罪寻找出路:网络犯罪生态系统的进化与探索
防守实战-蜜罐反制之攻击链还原
蜜罐技术本质上是一种对攻击方进行欺骗以及反制的技术,通过布置一些作为诱饵的主机、网络服务或者信息,诱使攻击方对它们实施攻击,从而可以对攻击行为进行捕获和分析,了解攻击方所使用的工具与方法,推测攻击意图和动机,能够让防御方清晰地了解他们所面对的安全威胁,并通过技术和管理手段来增强实际系统的安全防护能力;同时蜜罐可进一步通过浏览器或客户端漏洞反制获取攻击者主机权限,从攻击者主机中获取用于溯源的有效信息。
亿人安全
2023/10/18
7060
防守实战-蜜罐反制之攻击链还原
隐藏的OAuth攻击向量
过去十年来,OAuth2授权协议备受争议,您可能已经听说过很多"return_uri"技巧、令牌泄漏、对客户端的CSRF式攻击等等,在这篇文章中,我们将介绍三个全新的OAuth2和OpenID Connect漏洞:"动态客户端注册:SSRF设计","redirect_uri会话中毒"和"WebFinger用户枚举",我们将介绍关键概念,并在两台开源OAuth服务器(ForgeRock OpenAM和MITREid Connect)上演示这些攻击,最后提供一些有关如何自行检测这些漏洞的方法~
Al1ex
2021/04/22
3.1K0
隐藏的OAuth攻击向量
关于 Node.js 调试,你需要了解的一切
Node.js 是一种颇具人气的 JavaScript 运行时,与谷歌 Chrome 浏览器一样采用同款 V8 引擎。
深度学习与Python
2023/09/08
7920
关于 Node.js 调试,你需要了解的一切
神秘APT组织锁定(IIS)Web服务器,擅长规避恶意软件检测
近日研究人员发现,在过去一年间,一个复杂的且极可能由国家民族支持的威胁行为者一直在利用面向公众的ASP.NET应用程序中的反序列漏洞来部署无文件恶意软件,从而危害一些主要的公共和私营组织。
FB客服
2021/08/24
1.9K0
浅谈无文件攻击
与大多数恶意软件不同,“无文件”攻击并不会在目标计算机的硬盘中留下蛛丝马迹,而是直接将恶意代码写入内存或注册表中。由于没有病毒文件,传统基于文件扫描的防病毒软件很难侦测到它们的存在。然而,“无文件”攻击的定义已经逐渐扩大化,那些需要依靠文件系统的某些功能来实现激活或驻留的恶意软件也已经包括在了“无文件”攻击的范畴中。
德迅云安全--陈琦琦
2024/03/21
3470
【愚公系列】2023年06月 攻防世界-Web(BadProgrammer)
Nginx源码泄露漏洞是一种安全漏洞,指攻击者可以通过某种方式获取Nginx服务器上的源代码文件,导致服务器的代码暴露在公众面前,进而被攻击者利用。这可能会导致最终用户资料泄露,甚至整个服务器被攻击者完全控制。
愚公搬代码
2025/05/28
910
【愚公系列】2023年06月 攻防世界-Web(BadProgrammer)
相关推荐
Node.js 严重漏洞使数百万系统面临 RCE 攻击
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档