首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >这可以在switch语句中编写吗?

这可以在switch语句中编写吗?
EN

Stack Overflow用户
提问于 2015-11-23 23:31:31
回答 2查看 85关注 0票数 3

我正在写一个Safari扩展,想要检测我当前所在的页面(url),并做相应的事情。

现在我的代码看起来像这样:

代码语言:javascript
运行
AI代码解释
复制
if (linkHas("facebook.com")) {...}
else if (linkHas("google.com")) {...}
else if (linkHas("yahoo.com")) {...}

其中linkHas()是一个函数,如果它有参数,它基本上返回1,否则返回0。

可以编写这一条switch语句吗?我在某处读到,如果有5个以上的选项,switch语句就会以哈希表的形式实现。对于像我这样的小脚本,速度在这里可能并不是很重要,我只是把它作为一种练习来尝试。

EN

回答 2

Stack Overflow用户

发布于 2015-11-23 23:38:39

编辑:免责声明:以下是您不应该做的事情,但仅供参考。不要让别人告诉你你不能,但当他们说你不应该的时候,要倾听。

非常幼稚的方式:

代码语言:javascript
运行
AI代码解释
复制
switch(true){
    case linkHas("facebook.com"):
        // ...
        break;
    case linkHas("google.com"):
        // ...
        break;
    case linkHas("yahoo.com"):
        // ...
        break;
}

但是这绝对没有性能上的好处。事实上,如果在执行相等性测试之前评估所有函数,则速度可能会更慢。

还有很长的路要走,那就是将linkHas重构为getLinkDomain,并检查它返回的任何内容。

事实上,让我们这样做吧。使用由lewdev编写的方便的函数extractDomain,您可以:

代码语言:javascript
运行
AI代码解释
复制
var domain = extractDomain(link);
switch(domain){
    case "facebook.com":
        // ...
        break;
    //...
}
票数 5
EN

Stack Overflow用户

发布于 2015-11-23 23:57:55

动作创建一个域的“枚举”,以避免魔法strings.

  • Create一个函数"getDomain“,该函数使用一个对象字面量返回一个你自己的哈希表,称为”“,以所述枚举值为关键字。散列表值可以是包含为该键运行的逻辑的函数。

然后写下:

代码语言:javascript
运行
AI代码解释
复制
actions[getDomain()]();
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33882789

复制
相关文章
为什么变量不可以在 switch 语句中声明定义
case 语句其实就是标签(label),就像 goto 语句那样,解决这个问题其实很简单,只需加一对大括号,以表明作用域即可,
ClearSeve
2022/02/11
7430
Python turtle 模块可以编写游戏,是真的吗?
turtle(小海龟) 是 Python 内置的一个绘图模块,其实它不仅可以用来绘图,还可以制作简单的小游戏,甚至可以当成简易的 GUI 模块,编写简单的 GUI 程序。
一枚大果壳
2022/08/23
1.5K0
Python turtle  模块可以编写游戏,是真的吗?
您真的会用switch吗?
企鹅号小编
2018/01/05
7980
您真的会用switch吗?
pycharm编写的文件如何执行_pycharm可以写java吗
最近在做编译原理课设,准备用Java写个GUI整合一下,因为自己的LL1文法使用python写的,所以需要Java来实现运行python代码,网上给出了主要三种方法,但是使用Jython的方法有局限性且不太方便,于是我将采用最简洁的方法
全栈程序员站长
2022/09/27
9540
第一个可以在条件语句中使用的原生hook诞生了
在10月13日的first-class-support-for-promises RFC[1]中,介绍了一种新的hook —— use。
公众号@魔术师卡颂
2022/11/22
7950
PHP丨PHP基础知识之条件语SWITCH判断「理论篇」
Switch在一些计算机语言中是保留字,其作用大多情况下是进行判断选择。以PHP来说,switch(开关语句)常和case break default一起使用
大脸猫
2020/06/15
2.3K0
原生基础的判断语句中switch语句和if else if语句的区别
你会发现他们有的时候可以互换,那有人就问,那为什么要出两种相同的条件语句呢?这部时多此一举?
淼学派对
2022/11/20
1.3K0
我是如何编写了一个可以自动编辑新年祝福语的小程序
步骤一:构建一个人工智能模型才能让机器学会像人一样说话,在这里,使用python语言编写脚本,基于堆叠Transformer(神经网络中一个模块,使用自注意力机制用来实现句子中词和词的关联性)的解码器模块构建的GPT-2模型,采用了BERT的分词器(划分句子里面的词语)构建了一个大型的深度学习模型。
在下科劳德-
2021/12/31
1.4K0
C语言中switch语句_switch在c语言中
本篇文章帮大家学习c语言switch语句,包含了C语言switch语句使用方法、操作技巧、实例演示和注意事项,有一定的学习价值,大家可以用来参考。
全栈程序员站长
2022/09/27
2.7K0
语雀—好用的文档编写、知识沉淀的工具
「语雀」是一个「专业的云端知识库」,孵化自 蚂蚁金服,是 体验科技]理念下的一款创新产品,已是 10 万阿里员工进行文档编写、知识沉淀的标配。
全栈程序员站长
2022/07/20
1.3K0
其实我们可以少写点if else和switch
不过他强任他强,if-else全搞定,搬就完了。但是随着业务迭代或者项目交接,自己在看自己或者别人的if代码的时候,心情就不再表述了,各自深有体会。所以我们一起看看if还能怎么写
好好学java
2019/05/14
4640
main方法可以重载吗?可以被其他方法调用吗?可以继承吗?
不过自 JDK1.5 引入动态参数后,String[]数组也可以使用String... args来实现。
4xx.me
2022/06/10
1.8K0
Mapper文件在select语句中使用
非常复杂的结果集合,Mapper文件可能长这个样子,(注意当我们在select语句中使用B.title as blog_title,在resultMap的<result property="title" column="blog_title"/> 可以不设,系统会自动映射生成<result property="title" column="blog_title"/>,但是加上更清晰,也不会增加系统负担)如下:
用户8983410
2021/10/07
8720
谈谈在SQL语句中的优化技巧
在 php 开发中,代码写来写去功能无非连接数据库,进行增删改查,在日常开发中如何优化我们所写的 sql 语句呢? 1、应尽量避免在 where 子句中使用!=或<>操作符,否则将引擎放弃使用索引而进行全表扫描。 2、对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。 3、应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描,如: select id from t where num is null 可以
沈唁
2018/05/24
8020
其实我们可以少写点if else和switch
不过他强任他强,if-else全搞定,搬就完了。但是随着业务迭代或者项目交接,自己在看自己或者别人的if代码的时候,心情就不再表述了,各自深有体会。所以我们一起看看if还能怎么写
java架构师
2019/05/15
4590
[译]你可以在JSX中使用console.log吗?
可是上面的代码并不可以得到他们想要的结果,浏览器会把这段代码console.log(this.props.todos) 当做纯文本在界面展示出来 。
进击的大葱
2022/08/22
2.4K0
其实我们可以少写点 if else 和 switch
内容来源:作者—— 潇湘待雨,链接:https://www.cnblogs.com/pqjwyn/p/10247336.html,好文请多支持!感谢您的阅读~
IT大咖说
2019/03/07
4990
你知道 Vue scoped 原理吗?这波你在第几层?
这里简单理解:VueLoaderPlugin 就是来处理 rule 的,让 loader 能够和文件匹配。处理顺序:pitcher ⇒ clonedRule ⇒ vueRule
掘金安东尼
2022/09/19
3090
你知道 Vue scoped 原理吗?这波你在第几层?
你知道 Vue scoped 原理吗?这波你在第几层?
这里简单理解:VueLoaderPlugin 就是来处理 rule 的,让 loader 能够和文件匹配。处理顺序:pitcher ⇒ clonedRule ⇒ vueRule
PHP开发工程师
2022/05/19
5830
chatgpt可以赚钱吗
GPT-3 本身并没有直接的盈利模式,因为它是由 OpenAI 开发并公开发布的一个自然语言生成模型,可以免费使用。但是,GPT-3 可以作为一个关键技术与商业应用结合,从而带来盈利。以下是 GPT-3 可能的赚钱方式:
疯狂的KK
2023/03/17
1.5K0

相似问题

我可以在switch语句中包含cin吗

45

可以在switch语句中使用类吗?

41

可以在Switch语句中进行类型声明吗?

42

在C语言的switch语句中,可以在case中使用switch循环吗?

23

是否可以在switch语句中使用switch语句?

22
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档