如何遍历命令行参数并收集标志后的剩余内容?

我的目标是“ init”,“ init -site = test”,init的两个版本以及命令行上接受的独立“ debug”命令,并将剩下的任何内容都视为文件名。 / p>

实际上发生的是,由于某种原因,在“ init -site = test”的情况下,“-site = test”也被接受为文件名。我该如何阻止这种情况发生?

/*-----------------------------------------------------------------------------------*/
/*------------------- code to add document-level event delegation -------------------*/
/*-----------------------------------------------------------------------------------*/
// create an array for storing events
var documentLevelEvents = [];

// add a new delegated document-level listener function to all objects of type Element
Element.prototype.addDocumentLevelEventListener = function (eventType,fn) {
    // get a count of registered document-level event listeners for a given event type
    function documentLevelEventListenerCount(eventType) {
        var eventCount = documentLevelEvents.filter(e => {
            return e.eventType === eventType;
        }).length;
        return eventCount;
    }

    // filter the documentLevelEvents array and return only those that match the 
    // specified element and eventType
    function getDocumentLevelEvents(element,eventType) {
        var events = documentLevelEvents.filter(function (e) {
            return e.element === element && e.eventType === eventType;
        });
        return events;
    }

    // grab the count of listeners registered for this event type before registering
    // the submitted event
    var listenerExists = documentLevelEventListenerCount(eventType);

    // register the new document-level event listener
    documentLevelEvents.push({
        eventType: eventType,element: this,fn: fn
    });

    // if the document object does not already have a listener for this event type,// create a new event listener on the document object.
    if (!listenerExists) {
        document.addEventListener(eventType,function (evt) {
            var target = evt.target;

            // get an array of all registered events matching the target element
            // and the triggered event type
            var events = getDocumentLevelEvents(target,eventType);
            // iterate through the array and run the registered listener functions
            for (var i = 0; i < events.length; ++i) {
                event = events[i];
                event.fn(evt);
            }
        });
    }
};

/*-----------------------------------------------------------------------------------*/
/*---------------------------------- example usage ----------------------------------*/
/*-----------------------------------------------------------------------------------*/
element = document.getElementById('#element-id');
element.addDocumentLevelEventListener('input',()=>{console.log('innerText changed!')})
// anytime the text of the element changes on account of input,a notice will be logged
// to console.
lulujiaojiao 回答:如何遍历命令行参数并收集标志后的剩余内容?

使用T包不是很方便。来自doc

  

标记解析在第一个非标志参数(“-”是非标志参数)之前或终止符“-”之后停止。

您将必须手动进行:

  

解析后,标记后面的参数可以用作切片flag.Args()或单独用作flag.Arg(i)。

或者您可以使用其他软件包。

本文链接:https://www.f2er.com/3154239.html

大家都在问