【翻译】如何选择一个开源软件许可证 Choosing an OSS license doesn’t need to be scary...

2023-11-14

本文禁止转载~

选择一个开源软件许可证并不需要很可怕

下列哪一项最能描述你的情况?

我想简单和宽容

MIT许可证是一个许可证,就是短了点。它让人们做任何他们想与你的代码,只要他们提供归属回你和不承担你的责任。
jQuery和Rails使用MIT许可。

也就是把源代码拷贝出去后他人可以做任何操作,也和作者没有关系

The MIT License (MIT)

Copyright (c) [year] [fullname]

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the “Software”), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

要求

  • 许可和版权声明. 包括一份详细的代码的许可证和版权声明

许可

  • 商业用途。 本软件及衍生物可以用于商业用途
  • 分发 。 你可以分发这个软件
  • 改造。 该软件可以被修改
  • 个人使用。 你可以使用和修改软件,而不分发它
  • 转授许可证授权。 你可以给予许可的修改和分发本软件给第三方,不包括在许可证。

禁止

  • 承担责任。 软件提供无保修和软件作者/许可证所有者不能承担损害赔偿责任。

我关心的是专利

Apache许可证是一个许可证类似于MIT许可证,而且还提供了专利权的授予表达用户的贡献。
Apache,SVN,NuGet使用Apache许可证。

他人修改了源代码之后必须标注出哪里做出修改,这样就可以保护原作者的源代码的完整性,并且不能对修改之后的代码进行自己的版权商标添加。

Apache License 2.0

                            Apache License
                       Version 2.0, January 2004
                    http://www.apache.org/licenses/

TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION

  1. Definitions.

    “License” shall mean the terms and conditions for use, reproduction,
    and distribution as defined by Sections 1 through 9 of this document.

    “Licensor” shall mean the copyright owner or entity authorized by
    the copyright owner that is granting the License.

    “Legal Entity” shall mean the union of the acting entity and all
    other entities that control, are controlled by, or are under common
    control with that entity. For the purposes of this definition,
    “control” means (i) the power, direct or indirect, to cause the
    direction or management of such entity, whether by contract or
    otherwise, or (ii) ownership of fifty percent (50%) or more of the
    outstanding shares, or (iii) beneficial ownership of such entity.

    “You” (or “Your”) shall mean an individual or Legal Entity
    exercising permissions granted by this License.

    “Source” form shall mean the preferred form for making modifications,
    including but not limited to software source code, documentation
    source, and configuration files.

    “Object” form shall mean any form resulting from mechanical
    transformation or translation of a Source form, including but
    not limited to compiled object code, generated documentation,
    and conversions to other media types.

    “Work” shall mean the work of authorship, whether in Source or
    Object form, made available under the License, as indicated by a
    copyright notice that is included in or attached to the work
    (an example is provided in the Appendix below).

    “Derivative Works” shall mean any work, whether in Source or Object
    form, that is based on (or derived from) the Work and for which the
    editorial revisions, annotations, elaborations, or other modifications
    represent, as a whole, an original work of authorship. For the purposes
    of this License, Derivative Works shall not include works that remain
    separable from, or merely link (or bind by name) to the interfaces of,
    the Work and Derivative Works thereof.

    “Contribution” shall mean any work of authorship, including
    the original version of the Work and any modifications or additions
    to that Work or Derivative Works thereof, that is intentionally
    submitted to Licensor for inclusion in the Work by the copyright owner
    or by an individual or Legal Entity authorized to submit on behalf of
    the copyright owner. For the purposes of this definition, “submitted”
    means any form of electronic, verbal, or written communication sent
    to the Licensor or its representatives, including but not limited to
    communication on electronic mailing lists, source code control systems,
    and issue tracking systems that are managed by, or on behalf of, the
    Licensor for the purpose of discussing and improving the Work, but
    excluding communication that is conspicuously marked or otherwise
    designated in writing by the copyright owner as “Not a Contribution.”

    “Contributor” shall mean Licensor and any individual or Legal Entity
    on behalf of whom a Contribution has been received by Licensor and
    subsequently incorporated within the Work.

  2. Grant of Copyright License. Subject to the terms and conditions of
    this License, each Contributor hereby grants to You a perpetual,
    worldwide, non-exclusive, no-charge, royalty-free, irrevocable
    copyright license to reproduce, prepare Derivative Works of,
    publicly display, publicly perform, sublicense, and distribute the
    Work and such Derivative Works in Source or Object form.

  3. Grant of Patent License. Subject to the terms and conditions of
    this License, each Contributor hereby grants to You a perpetual,
    worldwide, non-exclusive, no-charge, royalty-free, irrevocable
    (except as stated in this section) patent license to make, have made,
    use, offer to sell, sell, import, and otherwise transfer the Work,
    where such license applies only to those patent claims licensable
    by such Contributor that are necessarily infringed by their
    Contribution(s) alone or by combination of their Contribution(s)
    with the Work to which such Contribution(s) was submitted. If You
    institute patent litigation against any entity (including a
    cross-claim or counterclaim in a lawsuit) alleging that the Work
    or a Contribution incorporated within the Work constitutes direct
    or contributory patent infringement, then any patent licenses
    granted to You under this License for that Work shall terminate
    as of the date such litigation is filed.

  4. Redistribution. You may reproduce and distribute copies of the
    Work or Derivative Works thereof in any medium, with or without
    modifications, and in Source or Object form, provided that You
    meet the following conditions:

    (a) You must give any other recipients of the Work or
    Derivative Works a copy of this License; and

    (b) You must cause any modified files to carry prominent notices
    stating that You changed the files; and

    (c) You must retain, in the Source form of any Derivative Works
    that You distribute, all copyright, patent, trademark, and
    attribution notices from the Source form of the Work,
    excluding those notices that do not pertain to any part of
    the Derivative Works; and

    (d) If the Work includes a “NOTICE” text file as part of its
    distribution, then any Derivative Works that You distribute must
    include a readable copy of the attribution notices contained
    within such NOTICE file, excluding those notices that do not
    pertain to any part of the Derivative Works, in at least one
    of the following places: within a NOTICE text file distributed
    as part of the Derivative Works; within the Source form or
    documentation, if provided along with the Derivative Works; or,
    within a display generated by the Derivative Works, if and
    wherever such third-party notices normally appear. The contents
    of the NOTICE file are for informational purposes only and
    do not modify the License. You may add Your own attribution
    notices within Derivative Works that You distribute, alongside
    or as an addendum to the NOTICE text from the Work, provided
    that such additional attribution notices cannot be construed
    as modifying the License.

    You may add Your own copyright statement to Your modifications and
    may provide additional or different license terms and conditions
    for use, reproduction, or distribution of Your modifications, or
    for any such Derivative Works as a whole, provided Your use,
    reproduction, and distribution of the Work otherwise complies with
    the conditions stated in this License.

  5. Submission of Contributions. Unless You explicitly state otherwise,
    any Contribution intentionally submitted for inclusion in the Work
    by You to the Licensor shall be under the terms and conditions of
    this License, without any additional terms or conditions.
    Notwithstanding the above, nothing herein shall supersede or modify
    the terms of any separate license agreement you may have executed
    with Licensor regarding such Contributions.

  6. Trademarks. This License does not grant permission to use the trade
    names, trademarks, service marks, or product names of the Licensor,
    except as required for reasonable and customary use in describing the
    origin of the Work and reproducing the content of the NOTICE file.

  7. Disclaimer of Warranty. Unless required by applicable law or
    agreed to in writing, Licensor provides the Work (and each
    Contributor provides its Contributions) on an “AS IS” BASIS,
    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
    implied, including, without limitation, any warranties or conditions
    of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
    PARTICULAR PURPOSE. You are solely responsible for determining the
    appropriateness of using or redistributing the Work and assume any
    risks associated with Your exercise of permissions under this License.

  8. Limitation of Liability. In no event and under no legal theory,
    whether in tort (including negligence), contract, or otherwise,
    unless required by applicable law (such as deliberate and grossly
    negligent acts) or agreed to in writing, shall any Contributor be
    liable to You for damages, including any direct, indirect, special,
    incidental, or consequential damages of any character arising as a
    result of this License or out of the use or inability to use the
    Work (including but not limited to damages for loss of goodwill,
    work stoppage, computer failure or malfunction, or any and all
    other commercial damages or losses), even if such Contributor
    has been advised of the possibility of such damages.

  9. Accepting Warranty or Additional Liability. While redistributing
    the Work or Derivative Works thereof, You may choose to offer,
    and charge a fee for, acceptance of support, warranty, indemnity,
    or other liability obligations and/or rights consistent with this
    License. However, in accepting such obligations, You may act only
    on Your own behalf and on Your sole responsibility, not on behalf
    of any other Contributor, and only if You agree to indemnify,
    defend, and hold each Contributor harmless for any liability
    incurred by, or claims asserted against, such Contributor by reason
    of your accepting any such warranty or additional liability.

    END OF TERMS AND CONDITIONS

    APPENDIX: How to apply the Apache License to your work.

    To apply the Apache License to your work, attach the following
    boilerplate notice, with the fields enclosed by brackets “{}”
    replaced with your own identifying information. (Don’t include
    the brackets!) The text should be enclosed in the appropriate
    comment syntax for the file format. We also recommend that a
    file or class name and description of purpose be included on the
    same “printed page” as the copyright notice for easier
    identification within third-party archives.

    Copyright {yyyy} {name of copyright owner}

    Licensed under the Apache License, Version 2.0 (the “License”);
    you may not use this file except in compliance with the License.
    You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

    Unless required by applicable law or agreed to in writing, software
    distributed under the License is distributed on an “AS IS” BASIS,
    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    See the License for the specific language governing permissions and
    limitations under the License.

要求

  • 许可和版权声明. 包括一份详细的代码的许可证和版权声明
  • 状态的改变. 显示了显着的变化的代码

许可

  • 商业用途。 本软件及衍生物可以用于商业用途
  • 分发 。 你可以分发这个软件
  • 改造。 该软件可以被修改
  • 专利授权。 此许可证提供了一个明确的权利,从收件人的贡献者的专利权。
  • 个人使用。 你可以使用和修改软件,而不分发它
  • 转授许可证授权。 你可以给予许可的修改和分发本软件给第三方,不包括在许可证。

禁止

  • 承担责任。 软件提供无保修和软件作者/许可证所有者不能承担损害赔偿责任。
  • 商标使用。虽然这可能是所有许可证的真实性,该许可证明确规定,你可能不使用的名称,商标,或商标的贡献者。

我关心分享改进

GPL(V2和V3)是一个公共的授权,要求那些将你的代码或使源可在同样条件下所衍生的工作。V3与V2,但进一步限制使用,禁止在硬件软件的改变。
Linux,Git,WordPress使用GPL。

公开的源代码必须全部可用,他人可以进行修改使用,但是不能再次授权出许可。

GNU General Public License v2.0
GNU General Public License v3.0
(太长了就不贴了。。。)

要求

  • 公开源代码. 源代码必须可用,当分发软件。在LGPL和OSL 3的情况下,该库的源(而不是整个程序)必须是可用的。
  • 许可和版权声明. 包括一份详细的代码的许可证和版权声明
  • 状态的改变. 显示了显着的变化的代码

许可

  • 商业用途。 本软件及衍生物可以用于商业用途
  • 分发 。 你可以分发这个软件
  • 改造。 该软件可以被修改
  • 专利授权。 此许可证提供了一个明确的权利,从收件人的贡献者的专利权。
  • 个人使用。 你可以使用和修改软件,而不分发它

禁止

  • 承担责任。 软件提供无保修和软件作者/许可证所有者不能承担损害赔偿责任。
  • 转授许可证授权。 你可以给予许可的修改和分发本软件给第三方,不包括在许可证。

如果没有这些对我的工作呢?

我的内容不是代码。

创建一个自己的许可证
http://creativecommons.org/choose/

我想要更多的选择。

还有很多许可证可以选择
http://choosealicense.com/licenses/

我不想选择一个许可证。

没有许可证

你没有义务选择一个许可证,这是你的权利,不包括一个与你的代码或项目。但请注意,选择了开源许可并不意味着你选择了版权法。
你必须与你的法律顾问有关你的特殊项目,但一般而言,没有一个许可证意味着默认的版权法适用。这意味着你保留所有的权利,你的源代码,没有人可以复制,分发,或创建衍生作品,从你的工作。
不允许使用您的代码可能不是你所想的“不许可”。一个开源许可证允许您的代码重用而维护版权。如果你的目标是明确的选择了版权保护,尝试一种公共领域奉献像无照或CC0。如果你想和别人分享你的工作,你必须选择它。
即使在许可文件的情况下,你可以在你发布你的源代码到一个需要接受服务条款的情况下给予某些权利。例如,如果您发布的源代码在GitHub上的一个公共库,你接受了服务,允许其他用户的某些权利条款GitHub。具体而言,您允许其他人查看和叉您的存储库。

一张图告诉你怎么选择开源许可证

图说开源协议

全球开源协议分布比例

开源比例

参考资料

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【翻译】如何选择一个开源软件许可证 Choosing an OSS license doesn’t need to be scary... 的相关文章

  • PHP解析xml文件错误

    我正在尝试使用 simpleXML 来获取数据http rates fxcm com RatesXML http rates fxcm com RatesXML Using simplexml load file 我有时会遇到错误 因为这个
  • 在 PHP 中将 CSV 写入不带括号的文件

    是否有本机函数或实体类 库用于将数组写入 CSV 文件中的一行而无需封装 fputcsv将默认为 如果没有为封装参数传入任何内容 谷歌让我失望了 返回一大堆有关的页面的结果 fputcsv PEAR 的库做的事情或多或少与fputcsv 工
  • 使用 PHP 对 ASP.NET 成员身份中的用户进行身份验证

    我在尝试使用 PHP 针对现有 ASP NET 成员资格数据库对用户进行身份验证时遇到一些问题 我在网上搜索过 发现现有的答案似乎对我不起作用 即 public static function Hash password salt deco
  • 运行 Composer 返回:“无法打开输入文件:composer.phar”

    我是 symfony2 和阅读新手symblog http tutorial symblog co uk tutorial parts 在第三章中 在尝试使用数据装置时 我尝试了以下命令 php composer phar update 但
  • Magento补丁安装失败

    从以下位置下载并运行 Magento PHP 5 4 支持补丁 Magento CE v1 7 0 0 1 7 0 2 时http www magentocommerce com download http www magentocomme
  • Symfony2中如何获取所有post参数? [复制]

    这个问题在这里已经有答案了 我想获取a的所有post参数symfony http symfony com Form I used all parameter this gt get request gt getParameterHolder
  • 如何以编程方式获取 WooCommerce 中的所有产品?

    我想获取 WooCommerce 中的所有产品数据 产品 sku 名称 价格 库存数量 可用性等 我可以使用 wp query 来做到这一点吗 这样你就可以通过 wp query 获取所有产品 global wpdb all product
  • PHP 中的 Preg_replace

    我想替换 中包含的字符串中的内容content 它是多行等 preg replace 函数应该删除整个 com 没有垫子 蒙特 尝试这个 result preg replace s replacement content subject
  • 使用日语“Enter”键进行搜索功能

    我在日语方面遇到了问题 我有一个允许用户搜索数据的表单 当用户输入要搜索的字符串并按 Enter 键时 搜索功能就会执行 我的代码是 formSearch input keyup function event var key event c
  • .gitconfig 别名函数调用

    我在 gitconfig 中定义了以下别名 alias teamcity tc tc是我在我的中定义的一个shell函数 bashrc文件 由于某种原因 我收到以下错误 aafghani 03 git workday amirafghani
  • PHP - hash_pbkdf2 函数

    我正在尝试使用此 php 函数执行一个函数来哈希密码 http be php net manual en function hash pbkdf2 php http be php net manual en function hash pb
  • Ansible bitbucket 克隆存储库配置 ssh 错误

    我之前发布过这个问题 但那里的答案不再有效 总之 当使用 Ansible 配置我的 vagrant box 时 在尝试使用 ssh 克隆我的 bitbucket 私有存储库时 我遇到了一个神秘的错误 该错误指出 权限被拒绝 公钥 然而 如果
  • 通过JS Laravel访问存储目录

    有没有办法访问storage目录 该目录已经链接到publicJS 中的目录 我正在尝试制作一个上传图片的表单 验证脚本 if request gt hasFile photos marker gt photos request gt ph
  • 将数组拆分为特定数量的块

    我知道array chunk 允许将数组拆分为多个块 但块的数量根据元素的数量而变化 我需要的是始终将数组拆分为特定数量的数组 例如 4 个数组 以下代码将数组分为 3 个块 两个块各有 2 个元素 1 个块有 1 个元素 我想要的是将数组
  • 如何在html中制作多行类型的文本框?

  • 如何从字符串中删除所有数字?

    我想删除字符串 0 9 中的所有数字 我写了这段有效的代码 words preg replace 0 words remove numbers words preg replace 1 words remove numbers words
  • PHP文件上传

    如果我想在文件名转到服务器的永久位置 而不是临时位置 之前更改文件名 我该如何执行此操作 代码如下
  • 无法从 Sourcetree 拉取 Git 远程存储库

    我生成了 ssh 密钥并配置了我的 git 和 SourceTree 我可以 git pull 并从 Git bash 执行其他操作 注意 我在 bashrc 中添加了以下内容以使其正常工作 eval ssh agent ssh add 然
  • mysqli bind_param 中的 NULL 是什么类型?

    我正在尝试将参数绑定到 INSERT INTO MySQLi 准备好的语句 如果该变量存在 否则插入 null 然后我知道 type variable i corresponding variable has type integer d
  • PHP 和 NLP:嵌套括号(解析器输出)到数组?

    想要将带有嵌套括号的文本转换为嵌套数组 以下是 NLP 解析器的输出示例 TOP S NP PRP I VP VBP love NP NP DT a JJ big NN bed PP IN of NP NNS roses 原文 我喜欢一大床

随机推荐

  • c++11 chrono全面解析(高精度时钟,可达纳秒级别)

    1 精度 时钟节拍 时间精度 template
  • 进程池

    进程池 进程池的使用场景 当我们需要并行的处理大规模任务的时候 需要使用到多进程 多线程技术 比如说服务器处理大量客户端的任务 我在大一的时候写过一个C S mysql架构的聊天室 大概是这样处理的 每当有客户端发出连接请求时 服务器acc
  • 如何获取美团的热门商品和服务

    导语 美团是中国最大的生活服务平台之一 提供了各种各样的商品和服务 如美食 酒店 旅游 电影 娱乐等 如果你想了解美团的热门商品和服务 你可以使用爬虫技术来获取它们 本文将介绍如何使用Python和BeautifulSoup库来编写一个简单
  • 【React】Hooks入门教程(二、React最常用的四种钩子)

    这个 API 是 React 的未来 有必要深入理解 本文谈谈我的理解 简单介绍它的用法 帮助大家快速上手 阅读本文需要有 React 基础 如果你还没学会 React 可以先看一下它的教程 更新 我后来又写了一篇 轻松学会 React 钩
  • 计算机网络——7层OSI网络模型

    文章目录 OSI模型 1 应用层 2 表示层 3 会话层 4 传输层 5 网络层 6 网络链路层 7 物理层 TCP IP分层模型 1 第一层 网络接口层 和物理层 2 第二层 网间 络 层 3 第三层 传输层 4 第四层 应用层 TCP
  • xxj-job容器部署

    一 admin端命令 docker run e PARAMS spring datasource url jdbc mysql 127 0 0 1 3306 xxl job useUnicode true characterEncoding
  • ReentrantLock学习总结

    ReentrantLock锁和synchronized锁相比具有以下特点 可被中断 即可以设置 可中断锁 当t1线程获取不到锁对象处于Blocked状态时 可由另一个线程调用t1的interrupt方法将其中断 此时t1会抛出被打断异常 可
  • 使用dat.gui更改three.js中的物体变量

    一 dat gui介绍 gui是一种JavaScript库 用于创建可视化控件和调试工具 它是dat gui的简称 dat gui是一个用于在Web应用程序中创建可定制GUI的JavaScript库 它可以轻松创建滑块 复选框 颜色选择器等
  • 正点原子IMXU开发板Qt开发环境搭建及测试

    Qt交叉编译器的安装 第一步 安装Qt开发使用的交叉编译器 位于 开发光盘A 基础资料 5 开发工具 交叉编译器 第二步 使用FileZilla Client将交叉编译器传输到Ubuntu中 第三步 在Ubuntu中给传输过去的交叉编译器可
  • mysql判断时间是否在当前时间内_判断当前时间是否在某时间段内

    public static booleantimeQuantum String stTime String edTime Calendar cal Calendar getInstance 获得一个日历 SimpleDateFormat s
  • [学习笔记]Linux + Nginx环境下部署 Web 站点

    部署后端程序 请阅读 学习笔记 Linux环境下部署 Net5 程序 林晓lx的博客 打包项目 以Vue项目为例 首先打包站点 前往项目的根目录并键入 yarn build 等待打包结束 成功后将在根目录下生成dist文件夹 用Zip压缩d
  • 信息学奥赛一本通C++语言——1139:整理药名

    题目描述 医生在书写药品名的时候经常不注意大小写 格式比较混乱 现要求你写一个程序将医生书写混乱的药品名整理成统一规范的格式 即药品名的第一个字符如果是字母要大写 其他字母小写 如将ASPIRIN aspirin整理成Aspirin 输入
  • 子网掩码详解

    一 子网掩码的概念及作用 子网掩码 subnet mask 又叫网络掩码 地址掩码 子网络遮罩 是一个应用于 TCP IP 网络的 32 位二进制值 它可以屏蔽掉 IP 地址中的一部分 从而分离出 IP 地址中的网络部分与主机部分 基于子网
  • css相对单位和绝对单位

    css长度单位分为 相对长度 和 绝对长度 1 相对长度 相对长度单位指定了一个长度相对于另一个长度的属性 对于不同的设配相对长度更加适用 单位 描述 em 它是描述相对于应用在当前元素的字体尺寸 所以它是相对长度单位 一般浏览器字体大小默
  • Ubuntu20.04 LTS 安装 ros Noetic 树莓派4/PC

    Ubuntu 20 04 LTS 安装树莓派系统 主要参考了这两篇文章 https blog csdn net liangforcold article details 126385774 https blog csdn net yangc
  • VS2010点滴——不能将参数 1 从“const char [11]”转换为“LPCWSTR”

    include windows h include iostream using namespace std int main char Write 10 Read 10 for int i 0 i lt 10 i Write i 10 i
  • Ubuntu 安装指定版本 Mysql,并设置远程连接(以安装mysql 5.5 为例)

    目录 一 安装Mysql 1 卸载Mysql 可跳过 2 安装mysql 软件源 3 安装mysql 5 5 4 验证测试 二 设置远程登录 1 允许使用root账号远程连接 2 Mysql 允许远程登录 一 安装Mysql 1 卸载Mys
  • 普通函数与模板函数的调用规则

    普通函数与模板函数的调用规则 1 如果函数模板和普通函数都可以实现 优先调用普通函数 2 可以通过空模板参数列表来强制调用函数模板 3 函数模板也可以发生重载 4 如果函数模板可以产生更好的匹配 优先调用函数模板 代码示例 1 如果函数模板
  • JS中sort方法排序

    JS中sort方法排序 一 数字排序 string类型 二 数字排序 string类型和number类型 三 混合排序 string number和字母 四 函数排序 五 数组对象排序 一 数字排序 string类型 var arr 1 2
  • 【翻译】如何选择一个开源软件许可证 Choosing an OSS license doesn’t need to be scary...

    本文禁止转载 选择一个开源软件许可证并不需要很可怕 下列哪一项最能描述你的情况 我想简单和宽容 MIT许可证是一个许可证 就是短了点 它让人们做任何他们想与你的代码 只要他们提供归属回你和不承担你的责任 jQuery和Rails使用MIT许